From 05ae7ca083fe0b5ffa6e7a124f260c23f804b8e8 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 5 Jul 2018 12:38:09 +0300 Subject: [PATCH] chore(core): update to latest release --- db_instances/db_instance.sql | 5431 ++++------------- site/.editorconfig | 14 + site/.htaccess | 17 +- site/CHANGELOG.txt | 597 +- site/COPYRIGHT.txt | 2 +- site/INSTALL.mysql.txt | 15 +- site/INSTALL.txt | 4 +- site/MAINTAINERS.txt | 228 +- site/README.txt | 12 +- site/UPGRADE.txt | 10 + site/includes/ajax.inc | 127 +- site/includes/batch.inc | 4 +- site/includes/bootstrap.inc | 695 ++- site/includes/cache.inc | 27 +- site/includes/common.inc | 519 +- site/includes/database/database.inc | 103 +- site/includes/database/mysql/database.inc | 65 +- site/includes/database/mysql/query.inc | 3 +- site/includes/database/mysql/schema.inc | 42 +- site/includes/database/pgsql/database.inc | 22 +- site/includes/database/pgsql/install.inc | 2 +- site/includes/database/pgsql/query.inc | 3 +- site/includes/database/pgsql/schema.inc | 28 +- site/includes/database/pgsql/select.inc | 4 +- site/includes/database/query.inc | 93 +- site/includes/database/schema.inc | 16 +- site/includes/database/select.inc | 22 +- site/includes/database/sqlite/database.inc | 10 +- site/includes/database/sqlite/install.inc | 2 - site/includes/database/sqlite/query.inc | 16 +- site/includes/database/sqlite/schema.inc | 30 +- site/includes/date.inc | 20 +- site/includes/entity.inc | 108 +- site/includes/errors.inc | 19 +- site/includes/file.inc | 266 +- site/includes/file.mimetypes.inc | 20 + site/includes/filetransfer/ftp.inc | 6 +- site/includes/filetransfer/ssh.inc | 6 +- site/includes/form.inc | 315 +- site/includes/install.core.inc | 48 +- site/includes/install.inc | 13 +- site/includes/iso.inc | 5 +- site/includes/language.inc | 7 +- site/includes/locale.inc | 66 +- site/includes/lock.inc | 2 +- site/includes/mail.inc | 17 +- site/includes/menu.inc | 103 +- site/includes/module.inc | 90 +- site/includes/password.inc | 6 +- site/includes/path.inc | 7 +- site/includes/registry.inc | 11 +- site/includes/request-sanitizer.inc | 114 + site/includes/session.inc | 16 +- site/includes/stream_wrappers.inc | 194 +- site/includes/tablesort.inc | 7 +- site/includes/theme.inc | 118 +- site/includes/unicode.inc | 14 +- site/includes/update.inc | 12 + site/includes/xmlrpc.inc | 36 +- site/includes/xmlrpcs.inc | 12 +- site/misc/ajax.js | 69 +- site/misc/autocomplete.js | 14 +- site/misc/drupal.js | 219 +- site/misc/favicon.ico | Bin 1150 -> 5430 bytes site/misc/states.js | 8 +- site/misc/tabledrag.js | 25 +- site/misc/tableselect.js | 6 +- site/misc/throbber-active.gif | Bin 0 -> 1233 bytes site/misc/throbber-inactive.png | Bin 0 -> 320 bytes site/misc/vertical-tabs.js | 6 + .../modules/aggregator/aggregator.fetcher.inc | 2 +- site/modules/aggregator/aggregator.info | 7 +- site/modules/aggregator/aggregator.install | 10 + site/modules/aggregator/aggregator.module | 8 + .../aggregator/aggregator.processor.inc | 2 +- site/modules/aggregator/aggregator.test | 55 +- .../aggregator/tests/aggregator_test.info | 7 +- .../aggregator/tests/aggregator_test.module | 2 +- .../tests/aggregator_test_title_entities.xml | 14 + site/modules/block/block.admin.inc | 2 +- site/modules/block/block.api.php | 55 +- site/modules/block/block.info | 7 +- site/modules/block/block.install | 18 +- site/modules/block/block.js | 6 +- site/modules/block/block.module | 125 +- site/modules/block/block.test | 126 +- site/modules/block/tests/block_test.info | 7 +- site/modules/block/tests/block_test.module | 31 + .../block_test_theme/block_test_theme.info | 7 +- site/modules/blog/blog.info | 7 +- site/modules/blog/blog.module | 2 +- site/modules/blog/blog.test | 40 +- site/modules/book/book.info | 7 +- site/modules/color/color.info | 7 +- site/modules/color/color.module | 49 +- site/modules/color/color.test | 2 +- site/modules/comment/comment.info | 7 +- site/modules/comment/comment.module | 39 +- site/modules/comment/comment.test | 79 +- site/modules/contact/contact.info | 7 +- site/modules/contact/contact.module | 9 +- site/modules/contact/contact.pages.inc | 4 +- site/modules/contact/contact.test | 22 + site/modules/contextual/contextual.info | 7 +- site/modules/dashboard/dashboard.api.php | 2 +- site/modules/dashboard/dashboard.info | 7 +- site/modules/dashboard/dashboard.js | 8 +- site/modules/dashboard/dashboard.test | 38 +- site/modules/dblog/dblog.admin.inc | 11 +- site/modules/dblog/dblog.info | 7 +- site/modules/dblog/dblog.install | 9 + site/modules/dblog/dblog.module | 38 +- site/modules/dblog/dblog.test | 65 +- site/modules/field/field.api.php | 90 +- site/modules/field/field.attach.inc | 8 +- site/modules/field/field.crud.inc | 14 +- site/modules/field/field.info | 7 +- site/modules/field/field.info.class.inc | 30 +- site/modules/field/field.info.inc | 6 +- site/modules/field/field.install | 22 + site/modules/field/field.module | 47 +- .../field_sql_storage/field_sql_storage.info | 7 +- .../field_sql_storage.module | 79 +- .../field_sql_storage/field_sql_storage.test | 149 +- site/modules/field/modules/list/list.info | 7 +- .../field/modules/list/tests/list.test | 2 +- .../field/modules/list/tests/list_test.info | 7 +- site/modules/field/modules/number/number.info | 7 +- .../field/modules/number/number.module | 15 +- site/modules/field/modules/number/number.test | 48 +- .../field/modules/options/options.info | 7 +- .../field/modules/options/options.module | 10 +- .../field/modules/options/options.test | 35 +- site/modules/field/modules/text/text.info | 7 +- site/modules/field/modules/text/text.js | 28 +- site/modules/field/modules/text/text.module | 6 +- site/modules/field/modules/text/text.test | 1 + site/modules/field/tests/field.test | 63 +- site/modules/field/tests/field_test.info | 7 +- site/modules/field/tests/field_test.install | 4 +- site/modules/field/tests/field_test.module | 15 + site/modules/field/theme/field.tpl.php | 8 +- site/modules/field_ui/field_ui.admin.inc | 8 +- site/modules/field_ui/field_ui.api.php | 3 + site/modules/field_ui/field_ui.info | 7 +- site/modules/field_ui/field_ui.js | 4 +- site/modules/field_ui/field_ui.module | 24 +- site/modules/field_ui/field_ui.test | 17 +- site/modules/file/file.field.inc | 25 +- site/modules/file/file.info | 7 +- site/modules/file/file.js | 2 +- site/modules/file/file.module | 134 +- site/modules/file/tests/file.test | 708 ++- site/modules/file/tests/file_module_test.info | 7 +- .../file/tests/file_module_test.module | 15 + site/modules/filter/filter.info | 7 +- site/modules/filter/filter.module | 44 +- site/modules/filter/filter.pages.inc | 9 +- site/modules/filter/filter.test | 71 +- site/modules/forum/forum.info | 7 +- site/modules/forum/forum.module | 4 +- site/modules/help/help.api.php | 63 - site/modules/help/help.info | 7 +- site/modules/image/image.admin.inc | 16 +- site/modules/image/image.field.inc | 2 +- site/modules/image/image.info | 7 +- site/modules/image/image.module | 44 +- site/modules/image/image.test | 125 +- .../image/tests/image_module_test.info | 7 +- .../image/tests/image_module_test.module | 3 + site/modules/locale/locale.admin.inc | 12 +- site/modules/locale/locale.info | 7 +- site/modules/locale/locale.test | 156 +- site/modules/locale/tests/locale_test.info | 7 +- site/modules/menu/menu.admin.inc | 9 +- site/modules/menu/menu.info | 7 +- site/modules/menu/menu.module | 3 +- site/modules/menu/menu.test | 39 +- site/modules/node/content_types.inc | 8 +- site/modules/node/node.admin.inc | 17 +- site/modules/node/node.api.php | 125 +- site/modules/node/node.info | 7 +- site/modules/node/node.install | 36 + site/modules/node/node.module | 77 +- site/modules/node/node.pages.inc | 37 +- site/modules/node/node.test | 284 +- site/modules/node/node.tokens.inc | 23 +- site/modules/node/tests/node_access_test.info | 7 +- .../node/tests/node_access_test.module | 2 +- site/modules/node/tests/node_test.info | 7 +- site/modules/node/tests/node_test.module | 18 + .../node/tests/node_test_exception.info | 7 +- site/modules/openid/openid.inc | 28 +- site/modules/openid/openid.info | 7 +- site/modules/openid/openid.install | 76 +- site/modules/openid/openid.module | 17 +- site/modules/openid/openid.test | 17 +- site/modules/openid/tests/openid_test.info | 7 +- site/modules/openid/tests/openid_test.install | 2 +- site/modules/openid/tests/openid_test.module | 1 + site/modules/overlay/overlay-parent.js | 36 +- site/modules/overlay/overlay.info | 7 +- site/modules/overlay/overlay.module | 18 + site/modules/path/path.info | 7 +- site/modules/path/path.module | 6 +- site/modules/php/php.info | 7 +- site/modules/php/php.module | 2 +- site/modules/poll/poll.info | 7 +- site/modules/poll/poll.module | 14 +- site/modules/poll/poll.test | 5 + site/modules/profile/profile.info | 7 +- site/modules/profile/profile.module | 1 + site/modules/profile/profile.pages.inc | 13 +- site/modules/profile/profile.test | 90 +- site/modules/rdf/rdf.info | 7 +- site/modules/rdf/rdf.module | 108 +- site/modules/rdf/rdf.test | 23 +- site/modules/rdf/tests/rdf_test.info | 8 +- site/modules/search/search-result.tpl.php | 2 +- site/modules/search/search.admin.inc | 10 + site/modules/search/search.api.php | 8 +- site/modules/search/search.extender.inc | 68 +- site/modules/search/search.info | 7 +- site/modules/search/search.install | 1 + site/modules/search/search.pages.inc | 9 +- site/modules/search/search.test | 151 +- .../search/tests/search_embedded_form.info | 7 +- .../search/tests/search_extra_type.info | 7 +- .../search/tests/search_node_tags.info | 11 + .../search/tests/search_node_tags.module | 23 + site/modules/shortcut/shortcut.admin.inc | 2 +- site/modules/shortcut/shortcut.info | 7 +- .../simpletest/drupal_web_test_case.php | 278 +- .../css_test_files/css_input_with_import.css | 2 + .../css_input_with_import.css.optimized.css | 2 +- .../css_input_with_import.css.unoptimized.css | 27 + .../css_subfolder/css_input_with_import.css | 29 + .../css_input_with_import.css.optimized.css | 6 + .../css_input_with_import.css.unoptimized.css | 54 + .../files/css_test_files/import1.css | 16 +- .../files/image-test-no-transparency.gif | Bin 0 -> 964 bytes .../image-test-transparent-out-of-range.gif | Bin 0 -> 183 bytes site/modules/simpletest/simpletest.info | 9 +- site/modules/simpletest/simpletest.module | 112 +- site/modules/simpletest/simpletest.test | 57 +- .../simpletest/src/Tests/PSR4WebTest.php | 18 + .../simpletest/tests/actions_loop_test.info | 7 +- site/modules/simpletest/tests/ajax.test | 89 +- .../simpletest/tests/ajax_forms_test.info | 7 +- .../simpletest/tests/ajax_forms_test.module | 20 +- site/modules/simpletest/tests/ajax_test.info | 7 +- .../simpletest/tests/batch_test.callbacks.inc | 22 + site/modules/simpletest/tests/batch_test.info | 7 +- site/modules/simpletest/tests/boot.test | 38 + .../modules/simpletest/tests/boot_test_1.info | 11 + .../simpletest/tests/boot_test_1.module | 21 + .../modules/simpletest/tests/boot_test_2.info | 11 + .../simpletest/tests/boot_test_2.module | 13 + site/modules/simpletest/tests/bootstrap.test | 357 +- site/modules/simpletest/tests/common.test | 494 +- .../modules/simpletest/tests/common_test.info | 7 +- .../simpletest/tests/common_test.module | 12 + .../tests/common_test_cron_helper.info | 7 +- .../simpletest/tests/database_test.info | 7 +- .../simpletest/tests/database_test.install | 3 + .../simpletest/tests/database_test.test | 173 +- .../drupal_autoload_test.info | 13 + .../drupal_autoload_test.module | 22 + .../drupal_autoload_test_class.inc | 11 + .../drupal_autoload_test_interface.inc | 11 + .../drupal_autoload_test_trait.sh | 16 + ...drupal_system_listing_compatible_test.info | 7 +- ...upal_system_listing_incompatible_test.info | 7 +- .../simpletest/tests/entity_cache_test.info | 7 +- .../tests/entity_cache_test_dependency.info | 7 +- .../modules/simpletest/tests/entity_crud.test | 49 + .../tests/entity_crud_hook_test.info | 7 +- .../tests/entity_query_access_test.info | 7 +- site/modules/simpletest/tests/error_test.info | 7 +- site/modules/simpletest/tests/file.test | 33 +- site/modules/simpletest/tests/file_test.info | 7 +- .../modules/simpletest/tests/filter_test.info | 7 +- site/modules/simpletest/tests/form.test | 342 +- site/modules/simpletest/tests/form_test.info | 7 +- .../modules/simpletest/tests/form_test.module | 142 + site/modules/simpletest/tests/image.test | 113 +- site/modules/simpletest/tests/image_test.info | 7 +- site/modules/simpletest/tests/mail.test | 30 +- site/modules/simpletest/tests/menu.test | 4 +- site/modules/simpletest/tests/menu_test.info | 7 +- site/modules/simpletest/tests/module.test | 42 + .../tests/module_test.implementations.inc | 10 + .../modules/simpletest/tests/module_test.info | 7 +- .../simpletest/tests/module_test.module | 11 + site/modules/simpletest/tests/password.test | 21 + site/modules/simpletest/tests/path_test.info | 7 +- .../tests/psr_0_test/psr_0_test.info | 7 +- .../tests/psr_4_test/psr_4_test.info | 11 + .../tests/psr_4_test/psr_4_test.module | 1 + .../psr_4_test/src/Tests/ExampleTest.php | 18 + .../src/Tests/Nested/NestedExampleTest.php | 18 + .../simpletest/tests/requirements1_test.info | 7 +- .../simpletest/tests/requirements2_test.info | 7 +- site/modules/simpletest/tests/session.test | 53 +- .../simpletest/tests/session_test.info | 7 +- .../tests/system_dependencies_test.info | 7 +- ...atible_core_version_dependencies_test.info | 7 +- ...system_incompatible_core_version_test.info | 7 +- ...ible_module_version_dependencies_test.info | 7 +- ...stem_incompatible_module_version_test.info | 7 +- .../tests/system_project_namespace_test.info | 12 + .../system_project_namespace_test.module | 1 + .../modules/simpletest/tests/system_test.info | 7 +- .../simpletest/tests/system_test.install | 20 + .../simpletest/tests/system_test.module | 168 +- .../simpletest/tests/taxonomy_test.info | 7 +- .../simpletest/tests/taxonomy_test.module | 30 + site/modules/simpletest/tests/theme.test | 201 +- site/modules/simpletest/tests/theme_test.info | 7 +- .../simpletest/tests/theme_test.module | 37 + .../themes/engines/nyan_cat/nyan_cat.engine | 53 + .../themes/test_basetheme/test_basetheme.info | 7 +- .../themes/test_subtheme/test_subtheme.info | 7 +- .../test_theme/templates/node--1.tpl.php | 2 + .../tests/themes/test_theme/test_theme.info | 7 +- .../theme_test_template_test.nyan-cat.html | 1 + .../test_theme_nyan_cat.info | 10 + .../simpletest/tests/update_script_test.info | 7 +- .../tests/update_script_test.install | 13 + .../simpletest/tests/update_test_1.info | 7 +- .../simpletest/tests/update_test_2.info | 7 +- .../simpletest/tests/update_test_3.info | 7 +- .../upgrade/drupal-6.filled.database.php | 48 +- .../upgrade/drupal-6.upload.database.php | 99 +- .../tests/upgrade/upgrade.taxonomy.test | 12 +- .../tests/upgrade/upgrade.upload.test | 23 + .../simpletest/tests/url_alter_test.info | 7 +- site/modules/simpletest/tests/xmlrpc.test | 39 + .../modules/simpletest/tests/xmlrpc_test.info | 7 +- site/modules/statistics/statistics.admin.inc | 20 +- site/modules/statistics/statistics.info | 7 +- site/modules/statistics/statistics.install | 1 + site/modules/statistics/statistics.js | 10 + site/modules/statistics/statistics.module | 19 +- site/modules/statistics/statistics.pages.inc | 8 +- site/modules/statistics/statistics.php | 33 + site/modules/statistics/statistics.test | 23 +- site/modules/syslog/syslog.info | 7 +- site/modules/system/form.api.php | 126 + site/modules/system/image.gd.inc | 124 +- site/modules/system/language.api.php | 12 +- site/modules/system/system.admin.inc | 57 +- site/modules/system/system.api.php | 233 +- site/modules/system/system.base-rtl.css | 4 +- site/modules/system/system.base.css | 9 +- site/modules/system/system.info | 7 +- site/modules/system/system.install | 199 +- site/modules/system/system.js | 2 +- site/modules/system/system.mail.inc | 2 +- site/modules/system/system.module | 127 +- site/modules/system/system.queue.inc | 3 +- site/modules/system/system.tar.inc | 2827 +++++---- site/modules/system/system.test | 355 +- site/modules/system/system.updater.inc | 8 +- .../modules/system/tests/cron_queue_test.info | 11 + .../system/tests/cron_queue_test.module | 27 + .../system/tests/system_cron_test.info | 11 + .../system/tests/system_cron_test.module | 15 + site/modules/taxonomy/taxonomy.api.php | 2 +- site/modules/taxonomy/taxonomy.info | 7 +- site/modules/taxonomy/taxonomy.install | 65 +- site/modules/taxonomy/taxonomy.module | 43 +- site/modules/taxonomy/taxonomy.pages.inc | 2 +- site/modules/taxonomy/taxonomy.test | 123 +- site/modules/toolbar/toolbar.info | 7 +- site/modules/tracker/tracker.info | 7 +- site/modules/tracker/tracker.module | 10 +- site/modules/tracker/tracker.pages.inc | 1 - site/modules/tracker/tracker.test | 67 +- .../translation/tests/translation_test.info | 7 +- site/modules/translation/translation.info | 7 +- site/modules/translation/translation.module | 35 +- site/modules/trigger/tests/trigger_test.info | 7 +- site/modules/trigger/trigger.info | 7 +- site/modules/trigger/trigger.test | 42 +- .../modules/update/tests/aaa_update_test.info | 7 +- .../modules/update/tests/bbb_update_test.info | 7 +- .../modules/update/tests/ccc_update_test.info | 7 +- .../update_test_admintheme.info | 9 + .../update_test_basetheme.info | 7 +- .../update_test_subtheme.info | 7 +- site/modules/update/tests/update_test.info | 7 +- site/modules/update/tests/update_test.module | 1 + site/modules/update/update.authorize.inc | 12 +- site/modules/update/update.compare.inc | 13 +- site/modules/update/update.fetch.inc | 10 +- site/modules/update/update.info | 7 +- site/modules/update/update.manager.inc | 8 +- site/modules/update/update.module | 5 +- site/modules/update/update.settings.inc | 11 +- site/modules/update/update.test | 51 +- site/modules/user/tests/user_form_test.info | 7 +- site/modules/user/tests/user_form_test.module | 18 + site/modules/user/user-picture.tpl.php | 2 +- site/modules/user/user.api.php | 38 +- site/modules/user/user.info | 7 +- site/modules/user/user.install | 26 +- site/modules/user/user.js | 2 + site/modules/user/user.module | 219 +- site/modules/user/user.pages.inc | 86 +- site/modules/user/user.test | 300 +- site/profiles/README.txt | 28 + site/profiles/minimal/minimal.info | 7 +- site/profiles/standard/standard.info | 7 +- site/profiles/standard/standard.install | 6 +- ...drupal_system_listing_compatible_test.info | 7 +- ...upal_system_listing_incompatible_test.info | 7 +- site/profiles/testing/testing.info | 7 +- site/robots.txt | 38 +- site/scripts/generate-d6-content.sh | 1 + site/scripts/password-hash.sh | 2 +- site/scripts/run-tests.sh | 154 +- .../sites/all/modules/libraries/CHANGELOG.txt | 44 +- site/sites/all/modules/libraries/README.txt | 9 +- .../all/modules/libraries/libraries.admin.inc | 547 ++ .../all/modules/libraries/libraries.api.php | 72 +- .../all/modules/libraries/libraries.drush.inc | 248 +- .../all/modules/libraries/libraries.info | 13 +- .../all/modules/libraries/libraries.install | 9 + .../all/modules/libraries/libraries.module | 251 +- .../tests/LibrariesAdminWebTest.test | 119 + ...braries.test => LibrariesLoadWebTest.test} | 192 +- .../libraries/tests/LibrariesUnitTest.test | 78 + .../libraries/tests/LibrariesWebTestBase.test | 64 + .../libraries/tests/example/example_1.css | 11 - .../libraries/tests/example/example_2.css | 11 - .../libraries/tests/example/example_3.css | 11 - .../libraries/tests/example/example_4.css | 11 - .../tests/{ => libraries}/example/README.txt | 17 +- .../tests/libraries/example/example_1.css | 12 + .../{ => libraries}/example/example_1.js | 4 +- .../tests/libraries/example/example_1.php | 15 + .../tests/libraries/example/example_2.css | 12 + .../{ => libraries}/example/example_2.js | 4 +- .../tests/libraries/example/example_2.php | 15 + .../tests/libraries/example/example_3.css | 12 + .../{ => libraries}/example/example_3.js | 4 +- .../{ => libraries}/example/example_3.php | 2 +- .../tests/libraries/example/example_4.css | 12 + .../{ => libraries}/example/example_4.js | 4 +- .../{ => libraries}/example/example_4.php | 2 +- .../example_info_file.libraries.info | 7 +- .../libraries/tests/libraries_test.css | 12 - .../libraries/tests/libraries_test.inc | 11 - .../modules/libraries/tests/libraries_test.js | 18 - .../libraries_test_module.css | 12 + .../libraries_test_module.inc} | 3 +- .../libraries_test_module.info} | 7 +- .../libraries_test_module.js | 18 + .../libraries_test_module.module} | 234 +- .../libraries_test_module_post_load.inc | 15 + .../libraries_test_theme.css | 12 + .../libraries_test_theme.inc} | 3 +- .../libraries_test_theme.info | 11 + .../libraries_test_theme.js | 18 + .../themes/libraries_test_theme/template.php | 36 + site/themes/bartik/bartik.info | 7 +- site/themes/bartik/css/style-rtl.css | 4 +- site/themes/bartik/css/style.css | 11 +- site/themes/garland/garland.info | 7 +- site/themes/garland/template.php | 78 +- site/themes/seven/seven.info | 7 +- site/themes/seven/style.css | 13 +- site/themes/stark/stark.info | 7 +- site/update.php | 7 +- site/web.config | 2 +- 476 files changed, 18335 insertions(+), 8776 deletions(-) create mode 100644 site/.editorconfig create mode 100644 site/includes/request-sanitizer.inc create mode 100644 site/misc/throbber-active.gif create mode 100644 site/misc/throbber-inactive.png create mode 100644 site/modules/aggregator/tests/aggregator_test_title_entities.xml delete mode 100644 site/modules/help/help.api.php create mode 100644 site/modules/search/tests/search_node_tags.info create mode 100644 site/modules/search/tests/search_node_tags.module create mode 100644 site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css create mode 100644 site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.optimized.css create mode 100644 site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.unoptimized.css create mode 100644 site/modules/simpletest/files/image-test-no-transparency.gif create mode 100644 site/modules/simpletest/files/image-test-transparent-out-of-range.gif create mode 100644 site/modules/simpletest/src/Tests/PSR4WebTest.php create mode 100644 site/modules/simpletest/tests/boot.test create mode 100644 site/modules/simpletest/tests/boot_test_1.info create mode 100644 site/modules/simpletest/tests/boot_test_1.module create mode 100644 site/modules/simpletest/tests/boot_test_2.info create mode 100644 site/modules/simpletest/tests/boot_test_2.module create mode 100644 site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.info create mode 100644 site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.module create mode 100644 site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test_class.inc create mode 100644 site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test_interface.inc create mode 100644 site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test_trait.sh create mode 100644 site/modules/simpletest/tests/entity_crud.test create mode 100644 site/modules/simpletest/tests/module_test.implementations.inc create mode 100644 site/modules/simpletest/tests/psr_4_test/psr_4_test.info create mode 100644 site/modules/simpletest/tests/psr_4_test/psr_4_test.module create mode 100644 site/modules/simpletest/tests/psr_4_test/src/Tests/ExampleTest.php create mode 100644 site/modules/simpletest/tests/psr_4_test/src/Tests/Nested/NestedExampleTest.php create mode 100644 site/modules/simpletest/tests/system_project_namespace_test.info create mode 100644 site/modules/simpletest/tests/system_project_namespace_test.module create mode 100644 site/modules/simpletest/tests/system_test.install create mode 100644 site/modules/simpletest/tests/themes/engines/nyan_cat/nyan_cat.engine create mode 100644 site/modules/simpletest/tests/themes/test_theme/templates/node--1.tpl.php create mode 100644 site/modules/simpletest/tests/themes/test_theme_nyan_cat/templates/theme_test_template_test.nyan-cat.html create mode 100644 site/modules/simpletest/tests/themes/test_theme_nyan_cat/test_theme_nyan_cat.info create mode 100644 site/modules/statistics/statistics.js create mode 100644 site/modules/statistics/statistics.php create mode 100644 site/modules/system/form.api.php create mode 100644 site/modules/system/tests/cron_queue_test.info create mode 100644 site/modules/system/tests/cron_queue_test.module create mode 100644 site/modules/system/tests/system_cron_test.info create mode 100644 site/modules/system/tests/system_cron_test.module create mode 100644 site/modules/update/tests/themes/update_test_admintheme/update_test_admintheme.info create mode 100644 site/profiles/README.txt create mode 100644 site/sites/all/modules/libraries/libraries.admin.inc create mode 100644 site/sites/all/modules/libraries/tests/LibrariesAdminWebTest.test rename site/sites/all/modules/libraries/tests/{libraries.test => LibrariesLoadWebTest.test} (78%) create mode 100644 site/sites/all/modules/libraries/tests/LibrariesUnitTest.test create mode 100644 site/sites/all/modules/libraries/tests/LibrariesWebTestBase.test delete mode 100644 site/sites/all/modules/libraries/tests/example/example_1.css delete mode 100644 site/sites/all/modules/libraries/tests/example/example_2.css delete mode 100644 site/sites/all/modules/libraries/tests/example/example_3.css delete mode 100644 site/sites/all/modules/libraries/tests/example/example_4.css rename site/sites/all/modules/libraries/tests/{ => libraries}/example/README.txt (76%) create mode 100644 site/sites/all/modules/libraries/tests/libraries/example/example_1.css rename site/sites/all/modules/libraries/tests/{ => libraries}/example/example_1.js (52%) create mode 100644 site/sites/all/modules/libraries/tests/libraries/example/example_1.php create mode 100644 site/sites/all/modules/libraries/tests/libraries/example/example_2.css rename site/sites/all/modules/libraries/tests/{ => libraries}/example/example_2.js (52%) create mode 100644 site/sites/all/modules/libraries/tests/libraries/example/example_2.php create mode 100644 site/sites/all/modules/libraries/tests/libraries/example/example_3.css rename site/sites/all/modules/libraries/tests/{ => libraries}/example/example_3.js (52%) rename site/sites/all/modules/libraries/tests/{ => libraries}/example/example_3.php (73%) create mode 100644 site/sites/all/modules/libraries/tests/libraries/example/example_4.css rename site/sites/all/modules/libraries/tests/{ => libraries}/example/example_4.js (52%) rename site/sites/all/modules/libraries/tests/{ => libraries}/example/example_4.php (73%) rename site/sites/all/modules/libraries/tests/{example => libraries}/example_info_file.libraries.info (55%) delete mode 100644 site/sites/all/modules/libraries/tests/libraries_test.css delete mode 100644 site/sites/all/modules/libraries/tests/libraries_test.inc delete mode 100644 site/sites/all/modules/libraries/tests/libraries_test.js create mode 100644 site/sites/all/modules/libraries/tests/modules/libraries_test_module/libraries_test_module.css rename site/sites/all/modules/libraries/tests/{example/example_2.php => modules/libraries_test_module/libraries_test_module.inc} (69%) rename site/sites/all/modules/libraries/tests/{libraries_test.info => modules/libraries_test_module/libraries_test_module.info} (57%) create mode 100644 site/sites/all/modules/libraries/tests/modules/libraries_test_module/libraries_test_module.js rename site/sites/all/modules/libraries/tests/{libraries_test.module => modules/libraries_test_module/libraries_test_module.module} (68%) create mode 100644 site/sites/all/modules/libraries/tests/modules/libraries_test_module/libraries_test_module_post_load.inc create mode 100644 site/sites/all/modules/libraries/tests/themes/libraries_test_theme/libraries_test_theme.css rename site/sites/all/modules/libraries/tests/{example/example_1.php => themes/libraries_test_theme/libraries_test_theme.inc} (69%) create mode 100644 site/sites/all/modules/libraries/tests/themes/libraries_test_theme/libraries_test_theme.info create mode 100644 site/sites/all/modules/libraries/tests/themes/libraries_test_theme/libraries_test_theme.js create mode 100644 site/sites/all/modules/libraries/tests/themes/libraries_test_theme/template.php diff --git a/db_instances/db_instance.sql b/db_instances/db_instance.sql index 89e0f38..99fefcf 100644 --- a/db_instances/db_instance.sql +++ b/db_instances/db_instance.sql @@ -1,32 +1,28 @@ --- phpMyAdmin SQL Dump --- version 3.5.2.2 --- http://www.phpmyadmin.net +-- MySQL dump 10.16 Distrib 10.1.28-MariaDB, for Win32 (AMD64) -- --- Φιλοξενητής: 127.0.0.1 --- Χρόνος δημιουργίας: 18 Οκτ 2013 στις 10:29:28 --- Έκδοση διακομιστή: 5.5.27 --- Έκδοση PHP: 5.4.7 - -SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -SET time_zone = "+00:00"; - +-- Host: localhost Database: simplecorp +-- ------------------------------------------------------ +-- Server version 10.1.28-MariaDB /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- --- Βάση: `simplecorp-git` +-- Table structure for table `actions` -- --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `actions` --- - -CREATE TABLE IF NOT EXISTS `actions` ( +DROP TABLE IF EXISTS `actions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `actions` ( `aid` varchar(255) NOT NULL DEFAULT '0' COMMENT 'Primary Key: Unique actions ID.', `type` varchar(32) NOT NULL DEFAULT '' COMMENT 'The object that that action acts on (node, user, comment, system or custom types.)', `callback` varchar(255) NOT NULL DEFAULT '' COMMENT 'The callback function that executes when the action runs.', @@ -34,47 +30,53 @@ CREATE TABLE IF NOT EXISTS `actions` ( `label` varchar(255) NOT NULL DEFAULT '0' COMMENT 'Label of the action.', PRIMARY KEY (`aid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores action information.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `actions` +-- Dumping data for table `actions` -- -INSERT INTO `actions` (`aid`, `type`, `callback`, `parameters`, `label`) VALUES -('comment_publish_action', 'comment', 'comment_publish_action', '', 'Publish comment'), -('comment_save_action', 'comment', 'comment_save_action', '', 'Save comment'), -('comment_unpublish_action', 'comment', 'comment_unpublish_action', '', 'Unpublish comment'), -('node_make_sticky_action', 'node', 'node_make_sticky_action', '', 'Make content sticky'), -('node_make_unsticky_action', 'node', 'node_make_unsticky_action', '', 'Make content unsticky'), -('node_promote_action', 'node', 'node_promote_action', '', 'Promote content to front page'), -('node_publish_action', 'node', 'node_publish_action', '', 'Publish content'), -('node_save_action', 'node', 'node_save_action', '', 'Save content'), -('node_unpromote_action', 'node', 'node_unpromote_action', '', 'Remove content from front page'), -('node_unpublish_action', 'node', 'node_unpublish_action', '', 'Unpublish content'), -('system_block_ip_action', 'user', 'system_block_ip_action', '', 'Ban IP address of current user'), -('user_block_user_action', 'user', 'user_block_user_action', '', 'Block current user'); - --- -------------------------------------------------------- +LOCK TABLES `actions` WRITE; +/*!40000 ALTER TABLE `actions` DISABLE KEYS */; +INSERT INTO `actions` VALUES ('comment_publish_action','comment','comment_publish_action','','Publish comment'),('comment_save_action','comment','comment_save_action','','Save comment'),('comment_unpublish_action','comment','comment_unpublish_action','','Unpublish comment'),('node_make_sticky_action','node','node_make_sticky_action','','Make content sticky'),('node_make_unsticky_action','node','node_make_unsticky_action','','Make content unsticky'),('node_promote_action','node','node_promote_action','','Promote content to front page'),('node_publish_action','node','node_publish_action','','Publish content'),('node_save_action','node','node_save_action','','Save content'),('node_unpromote_action','node','node_unpromote_action','','Remove content from front page'),('node_unpublish_action','node','node_unpublish_action','','Unpublish content'),('system_block_ip_action','user','system_block_ip_action','','Ban IP address of current user'),('user_block_user_action','user','user_block_user_action','','Block current user'); +/*!40000 ALTER TABLE `actions` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `authmap` +-- Table structure for table `authmap` -- -CREATE TABLE IF NOT EXISTS `authmap` ( +DROP TABLE IF EXISTS `authmap`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `authmap` ( `aid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique authmap ID.', `uid` int(11) NOT NULL DEFAULT '0' COMMENT 'User’s users.uid.', `authname` varchar(128) NOT NULL DEFAULT '' COMMENT 'Unique authentication name.', `module` varchar(128) NOT NULL DEFAULT '' COMMENT 'Module which is controlling the authentication.', PRIMARY KEY (`aid`), - UNIQUE KEY `authname` (`authname`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores distributed authentication mapping.' AUTO_INCREMENT=1 ; + UNIQUE KEY `authname` (`authname`), + KEY `uid_module` (`uid`,`module`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores distributed authentication mapping.'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `authmap` +-- + +LOCK TABLES `authmap` WRITE; +/*!40000 ALTER TABLE `authmap` DISABLE KEYS */; +/*!40000 ALTER TABLE `authmap` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `batch` +-- Table structure for table `batch` -- -CREATE TABLE IF NOT EXISTS `batch` ( +DROP TABLE IF EXISTS `batch`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `batch` ( `bid` int(10) unsigned NOT NULL COMMENT 'Primary Key: Unique batch ID.', `token` varchar(64) NOT NULL COMMENT 'A string token generated against the current user’s session id and the batch id, used to ensure that only the user who submitted the batch can effectively access it.', `timestamp` int(11) NOT NULL COMMENT 'A Unix timestamp indicating when this batch was submitted for processing. Stale batches are purged at cron time.', @@ -82,14 +84,25 @@ CREATE TABLE IF NOT EXISTS `batch` ( PRIMARY KEY (`bid`), KEY `token` (`token`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores details about batches (processes that run in...'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `batch` +-- + +LOCK TABLES `batch` WRITE; +/*!40000 ALTER TABLE `batch` DISABLE KEYS */; +/*!40000 ALTER TABLE `batch` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `block` +-- Table structure for table `block` -- -CREATE TABLE IF NOT EXISTS `block` ( +DROP TABLE IF EXISTS `block`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `block` ( `bid` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique block ID.', `module` varchar(64) NOT NULL DEFAULT '' COMMENT 'The module from which the block originates; for example, ’user’ for the Who’s Online block, and ’block’ for any custom blocks.', `delta` varchar(32) NOT NULL DEFAULT '0' COMMENT 'Unique ID for block within a module.', @@ -100,259 +113,134 @@ CREATE TABLE IF NOT EXISTS `block` ( `custom` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Flag to indicate how users may control visibility of the block. (0 = Users cannot control, 1 = On by default, but can be hidden, 2 = Hidden by default, but can be shown)', `visibility` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Flag to indicate how to show blocks on pages. (0 = Show on all pages except listed pages, 1 = Show only on listed pages, 2 = Use custom PHP code to determine visibility)', `pages` text NOT NULL COMMENT 'Contents of the "Pages" block; contains either a list of paths on which to include/exclude the block or PHP code, depending on "visibility" setting.', - `title` varchar(64) NOT NULL DEFAULT '' COMMENT 'Custom title for the block. (Empty string will use block default title, will remove the title, text will cause block to use specified title.)', + `title` varchar(255) NOT NULL DEFAULT '' COMMENT 'Custom title for the block. (Empty string will use block default title, will remove the title, text will cause block to use specified title.)', `cache` tinyint(4) NOT NULL DEFAULT '1' COMMENT 'Binary flag to indicate block cache mode. (-2: Custom cache, -1: Do not cache, 1: Cache per role, 2: Cache per user, 4: Cache per page, 8: Block cache global) See DRUPAL_CACHE_* constants in ../includes/common.inc for more detailed information.', PRIMARY KEY (`bid`), UNIQUE KEY `tmd` (`theme`,`module`,`delta`), KEY `list` (`theme`,`status`,`region`,`weight`,`module`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores block settings, such as region and visibility...' AUTO_INCREMENT=153 ; - --- --- Άδειασμα δεδομένων του πίνακα `block` --- - -INSERT INTO `block` (`bid`, `module`, `delta`, `theme`, `status`, `weight`, `region`, `custom`, `visibility`, `pages`, `title`, `cache`) VALUES -(1, 'system', 'main', 'bartik', 1, 0, 'content', 0, 0, '', '', -1), -(2, 'search', 'form', 'bartik', 1, -1, 'sidebar_first', 0, 0, '\r\ncontact\r\nnode/13', '', -1), -(3, 'node', 'recent', 'seven', 1, 10, 'dashboard_main', 0, 0, '', '', -1), -(4, 'user', 'login', 'bartik', 1, 0, 'sidebar_first', 0, 0, 'contact\r\nnode/13', '', -1), -(5, 'system', 'navigation', 'bartik', 1, 0, 'sidebar_first', 0, 0, '', '', -1), -(6, 'system', 'powered-by', 'bartik', 1, 10, 'footer', 0, 0, '', '', -1), -(7, 'system', 'help', 'bartik', 1, 0, 'help', 0, 0, '', '', -1), -(8, 'system', 'main', 'seven', 1, 0, 'content', 0, 0, '', '', -1), -(9, 'system', 'help', 'seven', 1, 0, 'help', 0, 0, '', '', -1), -(10, 'user', 'login', 'seven', 1, 10, 'content', 0, 0, 'contact\r\nnode/13', '', -1), -(11, 'user', 'new', 'seven', 1, 0, 'dashboard_sidebar', 0, 0, '', '', -1), -(12, 'search', 'form', 'seven', 1, -10, 'dashboard_sidebar', 0, 0, '\r\ncontact\r\nnode/13', '', -1), -(13, 'comment', 'recent', 'bartik', 0, 0, '-1', 0, 0, '\r\ncontact\r\nnode/13', '', 1), -(14, 'node', 'syndicate', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(15, 'node', 'recent', 'bartik', 0, 0, '-1', 0, 0, '', '', 1), -(16, 'shortcut', 'shortcuts', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(17, 'system', 'management', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(18, 'system', 'user-menu', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(19, 'system', 'main-menu', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(20, 'user', 'new', 'bartik', 0, 0, '-1', 0, 0, '', '', 1), -(21, 'user', 'online', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(22, 'comment', 'recent', 'seven', 1, 0, 'dashboard_inactive', 0, 0, '\r\ncontact\r\nnode/13', '', 1), -(23, 'node', 'syndicate', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(24, 'shortcut', 'shortcuts', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(25, 'system', 'powered-by', 'seven', 0, 10, '-1', 0, 0, '', '', -1), -(26, 'system', 'navigation', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(27, 'system', 'management', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(28, 'system', 'user-menu', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(29, 'system', 'main-menu', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(30, 'user', 'online', 'seven', 1, 0, 'dashboard_inactive', 0, 0, '', '', -1), -(31, 'comment', 'recent', 'simplecorp', 1, -17, 'sidebar_second', 0, 0, '\r\ncontact\r\nnode/13', '', 1), -(32, 'node', 'recent', 'simplecorp', 0, -6, '-1', 0, 0, '', '', 1), -(33, 'node', 'syndicate', 'simplecorp', 0, -3, '-1', 0, 0, '', '', -1), -(34, 'search', 'form', 'simplecorp', 1, -19, 'sidebar_second', 0, 0, '\r\ncontact\r\nnode/13', '', -1), -(35, 'shortcut', 'shortcuts', 'simplecorp', 0, -4, '-1', 0, 0, '', '', -1), -(36, 'system', 'help', 'simplecorp', 0, -2, '-1', 0, 0, '', '', -1), -(37, 'system', 'main', 'simplecorp', 1, 0, 'content', 0, 0, '', '', -1), -(38, 'system', 'main-menu', 'simplecorp', 0, -19, '-1', 0, 0, '', '', -1), -(39, 'system', 'management', 'simplecorp', 0, -9, '-1', 0, 0, '', '', -1), -(40, 'system', 'navigation', 'simplecorp', 0, -18, '-1', 0, 0, '', '', -1), -(41, 'system', 'powered-by', 'simplecorp', 0, -8, '-1', 0, 0, '', '', -1), -(42, 'system', 'user-menu', 'simplecorp', 0, 0, '-1', 0, 0, '', '', -1), -(43, 'user', 'login', 'simplecorp', 1, -16, 'sidebar_second', 0, 0, 'contact\r\nnode/13', '', -1), -(44, 'user', 'new', 'simplecorp', 0, -1, '-1', 0, 0, '', '', 1), -(45, 'user', 'online', 'simplecorp', 0, 0, '-1', 0, 0, '', '', -1), -(46, 'block', '1', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(47, 'block', '1', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(48, 'block', '1', 'simplecorp', 1, -19, 'header', 0, 0, '', '', -1), -(49, 'block', '2', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(50, 'block', '2', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(51, 'block', '2', 'simplecorp', 0, -18, '-1', 0, 0, '', '', -1), -(52, 'block', '3', 'bartik', 0, 0, '-1', 0, 1, '', '', -1), -(53, 'block', '3', 'seven', 0, 0, '-1', 0, 1, '', '', -1), -(54, 'block', '3', 'simplecorp', 1, 0, 'top_content', 0, 1, '', '', -1), -(55, 'block', '4', 'bartik', 0, 0, '-1', 0, 1, '', '', -1), -(56, 'block', '4', 'seven', 0, 0, '-1', 0, 1, '', '', -1), -(57, 'block', '4', 'simplecorp', 1, 0, 'highlighted', 0, 1, '', '', -1), -(58, 'block', '5', 'bartik', 0, 0, '-1', 0, 1, '', '', -1), -(59, 'block', '5', 'seven', 0, 0, '-1', 0, 1, '', '', -1), -(60, 'block', '5', 'simplecorp', 1, 0, 'banner', 0, 1, '', '', -1), -(61, 'block', '6', 'bartik', 0, 0, '-1', 0, 1, '', '', -1), -(62, 'block', '6', 'seven', 0, 0, '-1', 0, 1, '', '', -1), -(63, 'block', '6', 'simplecorp', 1, 0, 'bottom_content', 0, 1, '', '', -1), -(64, 'superfish', '1', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(65, 'superfish', '2', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(66, 'superfish', '3', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(67, 'superfish', '4', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(68, 'superfish', '1', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(69, 'superfish', '2', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(70, 'superfish', '3', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(71, 'superfish', '4', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(72, 'superfish', '1', 'simplecorp', 1, 0, 'navigation', 0, 0, '', '', -1), -(73, 'superfish', '2', 'simplecorp', 0, 0, '-1', 0, 0, '', '', -1), -(74, 'superfish', '3', 'simplecorp', 0, 0, '-1', 0, 0, '', '', -1), -(75, 'superfish', '4', 'simplecorp', 0, 0, '-1', 0, 0, '', '', -1), -(76, 'block', '7', 'bartik', 0, 0, '-1', 0, 0, '', 'Recent Blog Posts', -1), -(77, 'block', '7', 'seven', 0, 0, '-1', 0, 0, '', 'Recent Blog Posts', -1), -(78, 'block', '7', 'simplecorp', 1, 0, 'footer_first', 0, 0, '', 'Recent Blog Posts', -1), -(79, 'block', '8', 'bartik', 0, 0, '-1', 0, 0, '', 'Tweets Update', -1), -(80, 'block', '8', 'seven', 0, 0, '-1', 0, 0, '', 'Tweets Update', -1), -(81, 'block', '8', 'simplecorp', 1, -18, 'footer_second', 0, 0, '', 'Tweets Update', -1), -(82, 'block', '9', 'bartik', 0, 0, '-1', 0, 0, '', 'Blogroll', -1), -(83, 'block', '9', 'seven', 0, 0, '-1', 0, 0, '', 'Blogroll', -1), -(84, 'block', '9', 'simplecorp', 1, 0, 'footer_third', 0, 0, '', 'Blogroll', -1), -(85, 'block', '10', 'bartik', 0, 0, '-1', 0, 0, '', 'Contact Info ', -1), -(86, 'block', '10', 'seven', 0, 0, '-1', 0, 0, '', 'Contact Info ', -1), -(87, 'block', '10', 'simplecorp', 1, 0, 'footer_fourth', 0, 0, '', 'Contact Info ', -1), -(91, 'block', '12', 'bartik', 0, 0, '-1', 0, 1, 'contact', '', -1), -(92, 'block', '12', 'seven', 0, 0, '-1', 0, 1, 'contact', '', -1), -(93, 'block', '12', 'simplecorp', 1, 0, 'content', 0, 1, 'contact', '', -1), -(94, 'block', '13', 'bartik', 0, 0, '-1', 0, 1, 'contact', '', -1), -(95, 'block', '13', 'seven', 0, 0, '-1', 0, 1, 'contact', '', -1), -(96, 'block', '13', 'simplecorp', 1, 0, 'top_content', 0, 1, 'contact', '', -1), -(97, 'block', '14', 'bartik', 0, 0, '-1', 0, 1, 'contact', '', -1), -(98, 'block', '14', 'seven', 0, 0, '-1', 0, 1, 'contact', '', -1), -(99, 'block', '14', 'simplecorp', 1, 0, 'sidebar_first', 0, 1, 'contact', '', -1), -(100, 'block', '15', 'bartik', 0, 0, '-1', 0, 1, 'node/1\r\nnode/12\r\nnode/13', '', -1), -(101, 'block', '15', 'seven', 0, 0, '-1', 0, 1, 'node/1\r\nnode/12\r\nnode/13', '', -1), -(102, 'block', '15', 'simplecorp', 1, 0, 'top_content', 0, 1, 'node/1\r\nnode/12\r\nnode/13', '', -1), -(103, 'blog', 'recent', 'bartik', 0, 0, '-1', 0, 0, '\r\ncontact\r\nnode/13', '', 1), -(104, 'blog', 'recent', 'seven', 1, 0, 'dashboard_inactive', 0, 0, '\r\ncontact\r\nnode/13', '', 1), -(105, 'blog', 'recent', 'simplecorp', 1, -18, 'sidebar_second', 0, 0, '\r\ncontact\r\nnode/13', '', 1), -(106, 'block', '16', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(107, 'block', '16', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(108, 'block', '16', 'simplecorp', 1, 0, 'top_content', 0, 0, '', '', -1), -(109, 'block', '17', 'bartik', 0, 0, '-1', 0, 1, 'blog/*\r\ntaxonomy/*\r\nblog', '', -1), -(110, 'block', '17', 'seven', 0, 0, '-1', 0, 1, 'blog/*\r\ntaxonomy/*\r\nblog', '', -1), -(111, 'block', '17', 'simplecorp', 1, 0, 'top_content', 0, 1, 'blog/*\r\ntaxonomy/*\r\nblog', '', -1), -(112, 'menu', 'menu-bottom-footer-menu', 'simplecorp', 0, 0, '-1', 0, 0, '', '', -1), -(113, 'menu', 'menu-bottom-footer-menu', 'bartik', 0, 0, '-1', 0, 0, '', '', -1), -(114, 'menu', 'menu-bottom-footer-menu', 'seven', 0, 0, '-1', 0, 0, '', '', -1), -(115, 'block', '1', 'garland', 1, -19, 'header', 0, 0, '', '', -1), -(116, 'block', '10', 'garland', 1, 0, 'sidebar_first', 0, 0, '', 'Contact Info ', -1), -(118, 'block', '12', 'garland', 1, 0, 'content', 0, 1, 'contact', '', -1), -(119, 'block', '13', 'garland', 1, 0, 'sidebar_first', 0, 1, 'contact', '', -1), -(120, 'block', '14', 'garland', 1, 0, 'sidebar_first', 0, 1, 'contact', '', -1), -(121, 'block', '15', 'garland', 1, 0, 'sidebar_first', 0, 1, 'node/1\r\nnode/12\r\nnode/13', '', -1), -(122, 'block', '16', 'garland', 1, 0, 'sidebar_first', 0, 0, '', '', -1), -(123, 'block', '17', 'garland', 1, 0, 'sidebar_first', 0, 1, 'blog/*\r\ntaxonomy/*\r\nblog', '', -1), -(124, 'block', '2', 'garland', 0, -18, '-1', 0, 0, '', '', -1), -(125, 'block', '3', 'garland', 1, 0, 'sidebar_first', 0, 1, '', '', -1), -(126, 'block', '4', 'garland', 1, 0, 'highlighted', 0, 1, '', '', -1), -(127, 'block', '5', 'garland', 1, 0, 'sidebar_first', 0, 1, '', '', -1), -(128, 'block', '6', 'garland', 1, 0, 'sidebar_first', 0, 1, '', '', -1), -(129, 'block', '7', 'garland', 1, 0, 'sidebar_first', 0, 0, '', 'Recent Blog Posts', -1), -(130, 'block', '8', 'garland', 1, 0, 'sidebar_first', 0, 0, '', 'Tweets Update', -1), -(131, 'block', '9', 'garland', 1, 0, 'sidebar_first', 0, 0, '', 'Blogroll', -1), -(132, 'blog', 'recent', 'garland', 1, -18, 'sidebar_second', 0, 0, '\r\ncontact\r\nnode/13', '', 1), -(133, 'comment', 'recent', 'garland', 1, -17, 'sidebar_second', 0, 0, '\r\ncontact\r\nnode/13', '', 1), -(134, 'menu', 'menu-bottom-footer-menu', 'garland', 0, 0, '-1', 0, 0, '', '', -1), -(135, 'node', 'recent', 'garland', 0, -6, '-1', 0, 0, '', '', 1), -(136, 'node', 'syndicate', 'garland', 0, -3, '-1', 0, 0, '', '', -1), -(137, 'search', 'form', 'garland', 1, -19, 'sidebar_second', 0, 0, '\r\ncontact\r\nnode/13', '', -1), -(138, 'shortcut', 'shortcuts', 'garland', 0, -4, '-1', 0, 0, '', '', -1), -(139, 'superfish', '1', 'garland', 0, 0, '-1', 0, 0, '', '', -1), -(140, 'superfish', '2', 'garland', 0, 0, '-1', 0, 0, '', '', -1), -(141, 'superfish', '3', 'garland', 0, 0, '-1', 0, 0, '', '', -1), -(142, 'superfish', '4', 'garland', 0, 0, '-1', 0, 0, '', '', -1), -(143, 'system', 'help', 'garland', 0, -2, '-1', 0, 0, '', '', -1), -(144, 'system', 'main', 'garland', 1, 0, 'content', 0, 0, '', '', -1), -(145, 'system', 'main-menu', 'garland', 1, -19, 'sidebar_first', 0, 0, '', '', -1), -(146, 'system', 'management', 'garland', 0, -9, '-1', 0, 0, '', '', -1), -(147, 'system', 'navigation', 'garland', 0, -18, '-1', 0, 0, '', '', -1), -(148, 'system', 'powered-by', 'garland', 0, -8, '-1', 0, 0, '', '', -1), -(149, 'system', 'user-menu', 'garland', 0, 0, '-1', 0, 0, '', '', -1), -(150, 'user', 'login', 'garland', 1, -16, 'sidebar_second', 0, 0, 'contact\r\nnode/13', '', -1), -(151, 'user', 'new', 'garland', 0, -1, '-1', 0, 0, '', '', 1), -(152, 'user', 'online', 'garland', 0, 0, '-1', 0, 0, '', '', -1); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `blocked_ips` --- - -CREATE TABLE IF NOT EXISTS `blocked_ips` ( - `iid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: unique ID for IP addresses.', - `ip` varchar(40) NOT NULL DEFAULT '' COMMENT 'IP address', - PRIMARY KEY (`iid`), - KEY `blocked_ip` (`ip`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores blocked IP addresses.' AUTO_INCREMENT=1 ; +) ENGINE=InnoDB AUTO_INCREMENT=153 DEFAULT CHARSET=utf8 COMMENT='Stores block settings, such as region and visibility...'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `block` +-- + +LOCK TABLES `block` WRITE; +/*!40000 ALTER TABLE `block` DISABLE KEYS */; +INSERT INTO `block` VALUES (1,'system','main','bartik',1,0,'content',0,0,'','',-1),(2,'search','form','bartik',1,-1,'sidebar_first',0,0,'\r\ncontact\r\nnode/13','',-1),(3,'node','recent','seven',1,10,'dashboard_main',0,0,'','',-1),(4,'user','login','bartik',1,0,'sidebar_first',0,0,'contact\r\nnode/13','',-1),(5,'system','navigation','bartik',1,0,'sidebar_first',0,0,'','',-1),(6,'system','powered-by','bartik',1,10,'footer',0,0,'','',-1),(7,'system','help','bartik',1,0,'help',0,0,'','',-1),(8,'system','main','seven',1,0,'content',0,0,'','',-1),(9,'system','help','seven',1,0,'help',0,0,'','',-1),(10,'user','login','seven',1,10,'content',0,0,'contact\r\nnode/13','',-1),(11,'user','new','seven',1,0,'dashboard_sidebar',0,0,'','',-1),(12,'search','form','seven',1,-10,'dashboard_sidebar',0,0,'\r\ncontact\r\nnode/13','',-1),(13,'comment','recent','bartik',0,0,'-1',0,0,'\r\ncontact\r\nnode/13','',1),(14,'node','syndicate','bartik',0,0,'-1',0,0,'','',-1),(15,'node','recent','bartik',0,0,'-1',0,0,'','',1),(16,'shortcut','shortcuts','bartik',0,0,'-1',0,0,'','',-1),(17,'system','management','bartik',0,0,'-1',0,0,'','',-1),(18,'system','user-menu','bartik',0,0,'-1',0,0,'','',-1),(19,'system','main-menu','bartik',0,0,'-1',0,0,'','',-1),(20,'user','new','bartik',0,0,'-1',0,0,'','',1),(21,'user','online','bartik',0,0,'-1',0,0,'','',-1),(22,'comment','recent','seven',1,0,'dashboard_inactive',0,0,'\r\ncontact\r\nnode/13','',1),(23,'node','syndicate','seven',0,0,'-1',0,0,'','',-1),(24,'shortcut','shortcuts','seven',0,0,'-1',0,0,'','',-1),(25,'system','powered-by','seven',0,10,'-1',0,0,'','',-1),(26,'system','navigation','seven',0,0,'-1',0,0,'','',-1),(27,'system','management','seven',0,0,'-1',0,0,'','',-1),(28,'system','user-menu','seven',0,0,'-1',0,0,'','',-1),(29,'system','main-menu','seven',0,0,'-1',0,0,'','',-1),(30,'user','online','seven',1,0,'dashboard_inactive',0,0,'','',-1),(31,'comment','recent','simplecorp',1,-17,'sidebar_second',0,0,'\r\ncontact\r\nnode/13','',1),(32,'node','recent','simplecorp',0,-6,'-1',0,0,'','',1),(33,'node','syndicate','simplecorp',0,-3,'-1',0,0,'','',-1),(34,'search','form','simplecorp',1,-19,'sidebar_second',0,0,'\r\ncontact\r\nnode/13','',-1),(35,'shortcut','shortcuts','simplecorp',0,-4,'-1',0,0,'','',-1),(36,'system','help','simplecorp',0,-2,'-1',0,0,'','',-1),(37,'system','main','simplecorp',1,0,'content',0,0,'','',-1),(38,'system','main-menu','simplecorp',0,-19,'-1',0,0,'','',-1),(39,'system','management','simplecorp',0,-9,'-1',0,0,'','',-1),(40,'system','navigation','simplecorp',0,-18,'-1',0,0,'','',-1),(41,'system','powered-by','simplecorp',0,-8,'-1',0,0,'','',-1),(42,'system','user-menu','simplecorp',0,0,'-1',0,0,'','',-1),(43,'user','login','simplecorp',1,-16,'sidebar_second',0,0,'contact\r\nnode/13','',-1),(44,'user','new','simplecorp',0,-1,'-1',0,0,'','',1),(45,'user','online','simplecorp',0,0,'-1',0,0,'','',-1),(46,'block','1','bartik',0,0,'-1',0,0,'','',-1),(47,'block','1','seven',0,0,'-1',0,0,'','',-1),(48,'block','1','simplecorp',1,-19,'header',0,0,'','',-1),(49,'block','2','bartik',0,0,'-1',0,0,'','',-1),(50,'block','2','seven',0,0,'-1',0,0,'','',-1),(51,'block','2','simplecorp',0,-18,'-1',0,0,'','',-1),(52,'block','3','bartik',0,0,'-1',0,1,'','',-1),(53,'block','3','seven',0,0,'-1',0,1,'','',-1),(54,'block','3','simplecorp',1,0,'top_content',0,1,'','',-1),(55,'block','4','bartik',0,0,'-1',0,1,'','',-1),(56,'block','4','seven',0,0,'-1',0,1,'','',-1),(57,'block','4','simplecorp',1,0,'highlighted',0,1,'','',-1),(58,'block','5','bartik',0,0,'-1',0,1,'','',-1),(59,'block','5','seven',0,0,'-1',0,1,'','',-1),(60,'block','5','simplecorp',1,0,'banner',0,1,'','',-1),(61,'block','6','bartik',0,0,'-1',0,1,'','',-1),(62,'block','6','seven',0,0,'-1',0,1,'','',-1),(63,'block','6','simplecorp',1,0,'bottom_content',0,1,'','',-1),(64,'superfish','1','bartik',0,0,'-1',0,0,'','',-1),(65,'superfish','2','bartik',0,0,'-1',0,0,'','',-1),(66,'superfish','3','bartik',0,0,'-1',0,0,'','',-1),(67,'superfish','4','bartik',0,0,'-1',0,0,'','',-1),(68,'superfish','1','seven',0,0,'-1',0,0,'','',-1),(69,'superfish','2','seven',0,0,'-1',0,0,'','',-1),(70,'superfish','3','seven',0,0,'-1',0,0,'','',-1),(71,'superfish','4','seven',0,0,'-1',0,0,'','',-1),(72,'superfish','1','simplecorp',1,0,'navigation',0,0,'','',-1),(73,'superfish','2','simplecorp',0,0,'-1',0,0,'','',-1),(74,'superfish','3','simplecorp',0,0,'-1',0,0,'','',-1),(75,'superfish','4','simplecorp',0,0,'-1',0,0,'','',-1),(76,'block','7','bartik',0,0,'-1',0,0,'','Recent Blog Posts',-1),(77,'block','7','seven',0,0,'-1',0,0,'','Recent Blog Posts',-1),(78,'block','7','simplecorp',1,0,'footer_first',0,0,'','Recent Blog Posts',-1),(79,'block','8','bartik',0,0,'-1',0,0,'','Tweets Update',-1),(80,'block','8','seven',0,0,'-1',0,0,'','Tweets Update',-1),(81,'block','8','simplecorp',1,-18,'footer_second',0,0,'','Tweets Update',-1),(82,'block','9','bartik',0,0,'-1',0,0,'','Blogroll',-1),(83,'block','9','seven',0,0,'-1',0,0,'','Blogroll',-1),(84,'block','9','simplecorp',1,0,'footer_third',0,0,'','Blogroll',-1),(85,'block','10','bartik',0,0,'-1',0,0,'','Contact Info ',-1),(86,'block','10','seven',0,0,'-1',0,0,'','Contact Info ',-1),(87,'block','10','simplecorp',1,0,'footer_fourth',0,0,'','Contact Info ',-1),(91,'block','12','bartik',0,0,'-1',0,1,'contact','',-1),(92,'block','12','seven',0,0,'-1',0,1,'contact','',-1),(93,'block','12','simplecorp',1,0,'content',0,1,'contact','',-1),(94,'block','13','bartik',0,0,'-1',0,1,'contact','',-1),(95,'block','13','seven',0,0,'-1',0,1,'contact','',-1),(96,'block','13','simplecorp',1,0,'top_content',0,1,'contact','',-1),(97,'block','14','bartik',0,0,'-1',0,1,'contact','',-1),(98,'block','14','seven',0,0,'-1',0,1,'contact','',-1),(99,'block','14','simplecorp',1,0,'sidebar_first',0,1,'contact','',-1),(100,'block','15','bartik',0,0,'-1',0,1,'node/1\r\nnode/12\r\nnode/13','',-1),(101,'block','15','seven',0,0,'-1',0,1,'node/1\r\nnode/12\r\nnode/13','',-1),(102,'block','15','simplecorp',1,0,'top_content',0,1,'node/1\r\nnode/12\r\nnode/13','',-1),(103,'blog','recent','bartik',0,0,'-1',0,0,'\r\ncontact\r\nnode/13','',1),(104,'blog','recent','seven',1,0,'dashboard_inactive',0,0,'\r\ncontact\r\nnode/13','',1),(105,'blog','recent','simplecorp',1,-18,'sidebar_second',0,0,'\r\ncontact\r\nnode/13','',1),(106,'block','16','bartik',0,0,'-1',0,0,'','',-1),(107,'block','16','seven',0,0,'-1',0,0,'','',-1),(108,'block','16','simplecorp',1,0,'top_content',0,0,'','',-1),(109,'block','17','bartik',0,0,'-1',0,1,'blog/*\r\ntaxonomy/*\r\nblog','',-1),(110,'block','17','seven',0,0,'-1',0,1,'blog/*\r\ntaxonomy/*\r\nblog','',-1),(111,'block','17','simplecorp',1,0,'top_content',0,1,'blog/*\r\ntaxonomy/*\r\nblog','',-1),(112,'menu','menu-bottom-footer-menu','simplecorp',0,0,'-1',0,0,'','',-1),(113,'menu','menu-bottom-footer-menu','bartik',0,0,'-1',0,0,'','',-1),(114,'menu','menu-bottom-footer-menu','seven',0,0,'-1',0,0,'','',-1),(115,'block','1','garland',1,-19,'header',0,0,'','',-1),(116,'block','10','garland',1,0,'sidebar_first',0,0,'','Contact Info ',-1),(118,'block','12','garland',1,0,'content',0,1,'contact','',-1),(119,'block','13','garland',1,0,'sidebar_first',0,1,'contact','',-1),(120,'block','14','garland',1,0,'sidebar_first',0,1,'contact','',-1),(121,'block','15','garland',1,0,'sidebar_first',0,1,'node/1\r\nnode/12\r\nnode/13','',-1),(122,'block','16','garland',1,0,'sidebar_first',0,0,'','',-1),(123,'block','17','garland',1,0,'sidebar_first',0,1,'blog/*\r\ntaxonomy/*\r\nblog','',-1),(124,'block','2','garland',0,-18,'-1',0,0,'','',-1),(125,'block','3','garland',1,0,'sidebar_first',0,1,'','',-1),(126,'block','4','garland',1,0,'highlighted',0,1,'','',-1),(127,'block','5','garland',1,0,'sidebar_first',0,1,'','',-1),(128,'block','6','garland',1,0,'sidebar_first',0,1,'','',-1),(129,'block','7','garland',1,0,'sidebar_first',0,0,'','Recent Blog Posts',-1),(130,'block','8','garland',1,0,'sidebar_first',0,0,'','Tweets Update',-1),(131,'block','9','garland',1,0,'sidebar_first',0,0,'','Blogroll',-1),(132,'blog','recent','garland',1,-18,'sidebar_second',0,0,'\r\ncontact\r\nnode/13','',1),(133,'comment','recent','garland',1,-17,'sidebar_second',0,0,'\r\ncontact\r\nnode/13','',1),(134,'menu','menu-bottom-footer-menu','garland',0,0,'-1',0,0,'','',-1),(135,'node','recent','garland',0,-6,'-1',0,0,'','',1),(136,'node','syndicate','garland',0,-3,'-1',0,0,'','',-1),(137,'search','form','garland',1,-19,'sidebar_second',0,0,'\r\ncontact\r\nnode/13','',-1),(138,'shortcut','shortcuts','garland',0,-4,'-1',0,0,'','',-1),(139,'superfish','1','garland',0,0,'-1',0,0,'','',-1),(140,'superfish','2','garland',0,0,'-1',0,0,'','',-1),(141,'superfish','3','garland',0,0,'-1',0,0,'','',-1),(142,'superfish','4','garland',0,0,'-1',0,0,'','',-1),(143,'system','help','garland',0,-2,'-1',0,0,'','',-1),(144,'system','main','garland',1,0,'content',0,0,'','',-1),(145,'system','main-menu','garland',1,-19,'sidebar_first',0,0,'','',-1),(146,'system','management','garland',0,-9,'-1',0,0,'','',-1),(147,'system','navigation','garland',0,-18,'-1',0,0,'','',-1),(148,'system','powered-by','garland',0,-8,'-1',0,0,'','',-1),(149,'system','user-menu','garland',0,0,'-1',0,0,'','',-1),(150,'user','login','garland',1,-16,'sidebar_second',0,0,'contact\r\nnode/13','',-1),(151,'user','new','garland',0,-1,'-1',0,0,'','',1),(152,'user','online','garland',0,0,'-1',0,0,'','',-1); +/*!40000 ALTER TABLE `block` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `block_custom` +-- Table structure for table `block_custom` -- -CREATE TABLE IF NOT EXISTS `block_custom` ( +DROP TABLE IF EXISTS `block_custom`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `block_custom` ( `bid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'The block’s block.bid.', `body` longtext COMMENT 'Block contents.', `info` varchar(128) NOT NULL DEFAULT '' COMMENT 'Block description.', `format` varchar(255) DEFAULT NULL COMMENT 'The filter_format.format of the block body.', PRIMARY KEY (`bid`), UNIQUE KEY `info` (`info`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores contents of custom-made blocks.' AUTO_INCREMENT=18 ; +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='Stores contents of custom-made blocks.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `block_custom` +-- Dumping data for table `block_custom` -- -INSERT INTO `block_custom` (`bid`, `body`, `info`, `format`) VALUES -(1, '\r\n
\r\n\r\n
\r\n', 'Header Social Links', 'full_html'), -(2, ' ', 'Top Menu', 'php_code'), -(3, '

Welcome to Our Small Agency. We specialize in Web Design and Development. Check out our outstanding portfolio, and get in touch with Us!

', 'Top Content', 'full_html'), -(4, '
\r\n\r\n\r\n
\r\n\r\n

Awesome Features

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

\r\n
\r\nRead More\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n

Browser Compatibility

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

\r\n
\r\nRead More\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n

Works on Mobile Devices

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

\r\n
\r\nRead More\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n\r\n

Full Documentation

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

\r\n
\r\nRead More\r\n
\r\n
\r\n \r\n
\r\n
', 'Featured Content', 'php_code'), -(5, '\r\n
\r\n
\r\n
    \r\n\r\n\r\n
  • \r\n
    \r\n\r\n
    \r\n
    \r\n

    Quisque eu nibh enim, ac aliquam nunc.

    \r\n
    \r\n
  • \r\n\r\n\r\n
  • \r\n
    \r\n\r\n
    \r\n
    \r\n

    Quisque eu nibh enim, ac aliquam nunc.

    \r\n
    \r\n
  • \r\n\r\n\r\n
  • \r\n
    \r\n\r\n
    \r\n
    \r\n

    Quisque eu nibh enim, ac aliquam nunc.

    \r\n
    \r\n
  • \r\n\r\n
\r\n
\r\n
\r\n', 'Slideshow', 'php_code'), -(6, '

Some of Our Featured Projects

\r\n\r\n\r\nView full portofolio ', 'Bottom Content', 'php_code'), -(7, ' ', 'Footer First', 'php_code'), -(8, '
\r\n', 'Footer Second', 'full_html'), -(9, ' ', 'Footer Third', 'full_html'), -(10, '
\r\n

\r\n
\r\n0123 Some Street. Some Country\r\n(123) 987-654-321\r\n\r\n
\r\n

\r\n
', 'Footer Fourth', 'php_code'), -(12, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend.', 'Contact Page Text', 'filtered_html'), -(13, '
\r\n\r\n
', 'Contact Map', 'full_html'), -(14, '
\r\n
Address: 75 Ninth Avenue 2nd and 4th Floors New York, NY 10011
\r\n
Phone: +1 212-565-0000
\r\n
Fax: +1 212-565-0000
\r\n
E-mail: george@morethanthemes.com
\r\n
', 'Contact Info', 'full_html'), -(15, '
\r\n \r\n
', 'Inner page img (About Us & Portofolio)', 'php_code'), -(16, '
\r\n \r\n
', 'Inner page img (Blog entries)', 'php_code'), -(17, '
\r\n \r\n
', 'Inner page img (Blog)', 'php_code'); - --- -------------------------------------------------------- +LOCK TABLES `block_custom` WRITE; +/*!40000 ALTER TABLE `block_custom` DISABLE KEYS */; +INSERT INTO `block_custom` VALUES (1,'\r\n
\r\n\r\n
\r\n','Header Social Links','full_html'),(2,' ','Top Menu','php_code'),(3,'

Welcome to Our Small Agency. We specialize in Web Design and Development. Check out our outstanding portfolio, and get in touch with Us!

','Top Content','full_html'),(4,'
\r\n\r\n\r\n
\r\n/images/sampleimages/featured-img-01.png\" class=\"img-align-left\" alt=\"\" />\r\n

Awesome Features

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n/images/sampleimages/featured-img-02.png\" class=\"img-align-left\" alt=\"\" />\r\n

Browser Compatibility

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

\r\n\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n/images/sampleimages/featured-img-03.png\" class=\"img-align-left\" alt=\"\" />\r\n

Works on Mobile Devices

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

\r\n\r\n
\r\n \r\n\r\n\r\n
\r\n/images/sampleimages/featured-img-04.png\" class=\"img-align-left\" alt=\"\" />\r\n

Full Documentation

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

\r\n\r\n
\r\n \r\n
\r\n
','Featured Content','php_code'),(5,'\r\n
\r\n
\r\n\r\n
\r\n
\r\n','Slideshow','php_code'),(6,'

Some of Our Featured Projects

\r\n\r\n\r\nnode/13\" class=\"colored\" title=\"portofolio\">View full portofolio ','Bottom Content','php_code'),(7,' ','Footer First','php_code'),(8,'
\r\nFollow Us on Twitter! » ','Footer Second','full_html'),(9,' ','Footer Third','full_html'),(10,'
\r\n

\r\n
\r\n0123 Some Street. Some Country\r\n(123) 987-654-321\r\ncontact@company.com\r\n
\r\n

\r\n
','Footer Fourth','php_code'),(12,'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend.','Contact Page Text','filtered_html'),(13,'
\r\n\r\n
','Contact Map','full_html'),(14,'
\r\n
Address: 75 Ninth Avenue 2nd and 4th Floors New York, NY 10011
\r\n
Phone: +1 212-565-0000
\r\n
Fax: +1 212-565-0000
\r\n
E-mail: george@morethanthemes.com
\r\n
','Contact Info','full_html'),(15,'
\r\n\"/images/sampleimages/inner-page-bg-6.jpg\">\r\n
','Inner page img (About Us & Portofolio)','php_code'),(16,'
\r\n\"/images/sampleimages/inner-page-bg-7.jpg\">\r\n
','Inner page img (Blog entries)','php_code'),(17,'
\r\n\"/images/sampleimages/inner-page-bg-7.jpg\">\r\n
','Inner page img (Blog)','php_code'); +/*!40000 ALTER TABLE `block_custom` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `block_node_type` +-- Table structure for table `block_node_type` -- -CREATE TABLE IF NOT EXISTS `block_node_type` ( +DROP TABLE IF EXISTS `block_node_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `block_node_type` ( `module` varchar(64) NOT NULL COMMENT 'The block’s origin module, from block.module.', `delta` varchar(32) NOT NULL COMMENT 'The block’s unique delta within module, from block.delta.', `type` varchar(32) NOT NULL COMMENT 'The machine-readable name of this type from node_type.type.', PRIMARY KEY (`module`,`delta`,`type`), KEY `type` (`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Sets up display criteria for blocks based on content types'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `block_node_type` +-- Dumping data for table `block_node_type` -- -INSERT INTO `block_node_type` (`module`, `delta`, `type`) VALUES -('block', '16', 'blog'); - --- -------------------------------------------------------- +LOCK TABLES `block_node_type` WRITE; +/*!40000 ALTER TABLE `block_node_type` DISABLE KEYS */; +INSERT INTO `block_node_type` VALUES ('block','16','blog'); +/*!40000 ALTER TABLE `block_node_type` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `block_role` +-- Table structure for table `block_role` -- -CREATE TABLE IF NOT EXISTS `block_role` ( +DROP TABLE IF EXISTS `block_role`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `block_role` ( `module` varchar(64) NOT NULL COMMENT 'The block’s origin module, from block.module.', `delta` varchar(32) NOT NULL COMMENT 'The block’s unique delta within module, from block.delta.', `rid` int(10) unsigned NOT NULL COMMENT 'The user’s role ID from users_roles.rid.', PRIMARY KEY (`module`,`delta`,`rid`), KEY `rid` (`rid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Sets up access permissions for blocks based on user roles'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `block_role` +-- + +LOCK TABLES `block_role` WRITE; +/*!40000 ALTER TABLE `block_role` DISABLE KEYS */; +/*!40000 ALTER TABLE `block_role` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `blocked_ips` +-- + +DROP TABLE IF EXISTS `blocked_ips`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `blocked_ips` ( + `iid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: unique ID for IP addresses.', + `ip` varchar(40) NOT NULL DEFAULT '' COMMENT 'IP address', + PRIMARY KEY (`iid`), + KEY `blocked_ip` (`ip`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores blocked IP addresses.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `blocked_ips` +-- --- -------------------------------------------------------- +LOCK TABLES `blocked_ips` WRITE; +/*!40000 ALTER TABLE `blocked_ips` DISABLE KEYS */; +/*!40000 ALTER TABLE `blocked_ips` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache` +-- Table structure for table `cache` -- -CREATE TABLE IF NOT EXISTS `cache` ( +DROP TABLE IF EXISTS `cache`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -361,14 +249,25 @@ CREATE TABLE IF NOT EXISTS `cache` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Generic cache table for caching things not separated out...'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `cache` +-- + +LOCK TABLES `cache` WRITE; +/*!40000 ALTER TABLE `cache` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_block` +-- Table structure for table `cache_block` -- -CREATE TABLE IF NOT EXISTS `cache_block` ( +DROP TABLE IF EXISTS `cache_block`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_block` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -377,14 +276,25 @@ CREATE TABLE IF NOT EXISTS `cache_block` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table for the Block module to store already built...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cache_block` +-- --- -------------------------------------------------------- +LOCK TABLES `cache_block` WRITE; +/*!40000 ALTER TABLE `cache_block` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_block` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_bootstrap` +-- Table structure for table `cache_bootstrap` -- -CREATE TABLE IF NOT EXISTS `cache_bootstrap` ( +DROP TABLE IF EXISTS `cache_bootstrap`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_bootstrap` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -393,14 +303,25 @@ CREATE TABLE IF NOT EXISTS `cache_bootstrap` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table for data required to bootstrap Drupal, may be...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cache_bootstrap` +-- --- -------------------------------------------------------- +LOCK TABLES `cache_bootstrap` WRITE; +/*!40000 ALTER TABLE `cache_bootstrap` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_bootstrap` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_field` +-- Table structure for table `cache_field` -- -CREATE TABLE IF NOT EXISTS `cache_field` ( +DROP TABLE IF EXISTS `cache_field`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_field` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -409,14 +330,25 @@ CREATE TABLE IF NOT EXISTS `cache_field` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Generic cache table for caching things not separated out...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cache_field` +-- --- -------------------------------------------------------- +LOCK TABLES `cache_field` WRITE; +/*!40000 ALTER TABLE `cache_field` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_field` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_filter` +-- Table structure for table `cache_filter` -- -CREATE TABLE IF NOT EXISTS `cache_filter` ( +DROP TABLE IF EXISTS `cache_filter`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_filter` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -425,14 +357,25 @@ CREATE TABLE IF NOT EXISTS `cache_filter` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table for the Filter module to store already...'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `cache_filter` +-- + +LOCK TABLES `cache_filter` WRITE; +/*!40000 ALTER TABLE `cache_filter` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_filter` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_form` +-- Table structure for table `cache_form` -- -CREATE TABLE IF NOT EXISTS `cache_form` ( +DROP TABLE IF EXISTS `cache_form`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_form` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -441,14 +384,25 @@ CREATE TABLE IF NOT EXISTS `cache_form` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table for the form system to store recently built...'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `cache_form` +-- + +LOCK TABLES `cache_form` WRITE; +/*!40000 ALTER TABLE `cache_form` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_form` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_image` +-- Table structure for table `cache_image` -- -CREATE TABLE IF NOT EXISTS `cache_image` ( +DROP TABLE IF EXISTS `cache_image`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_image` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -457,14 +411,25 @@ CREATE TABLE IF NOT EXISTS `cache_image` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table used to store information about image...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cache_image` +-- --- -------------------------------------------------------- +LOCK TABLES `cache_image` WRITE; +/*!40000 ALTER TABLE `cache_image` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_image` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_libraries` +-- Table structure for table `cache_libraries` -- -CREATE TABLE IF NOT EXISTS `cache_libraries` ( +DROP TABLE IF EXISTS `cache_libraries`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_libraries` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -473,14 +438,25 @@ CREATE TABLE IF NOT EXISTS `cache_libraries` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table to store library information.'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `cache_libraries` +-- + +LOCK TABLES `cache_libraries` WRITE; +/*!40000 ALTER TABLE `cache_libraries` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_libraries` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_menu` +-- Table structure for table `cache_menu` -- -CREATE TABLE IF NOT EXISTS `cache_menu` ( +DROP TABLE IF EXISTS `cache_menu`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_menu` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -489,14 +465,25 @@ CREATE TABLE IF NOT EXISTS `cache_menu` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table for the menu system to store router...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cache_menu` +-- --- -------------------------------------------------------- +LOCK TABLES `cache_menu` WRITE; +/*!40000 ALTER TABLE `cache_menu` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_menu` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_page` +-- Table structure for table `cache_page` -- -CREATE TABLE IF NOT EXISTS `cache_page` ( +DROP TABLE IF EXISTS `cache_page`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_page` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -505,14 +492,25 @@ CREATE TABLE IF NOT EXISTS `cache_page` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table used to store compressed pages for anonymous...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cache_page` +-- --- -------------------------------------------------------- +LOCK TABLES `cache_page` WRITE; +/*!40000 ALTER TABLE `cache_page` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_page` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_path` +-- Table structure for table `cache_path` -- -CREATE TABLE IF NOT EXISTS `cache_path` ( +DROP TABLE IF EXISTS `cache_path`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_path` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -521,14 +519,25 @@ CREATE TABLE IF NOT EXISTS `cache_path` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table for path alias lookup.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cache_path` +-- --- -------------------------------------------------------- +LOCK TABLES `cache_path` WRITE; +/*!40000 ALTER TABLE `cache_path` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_path` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `cache_update` +-- Table structure for table `cache_update` -- -CREATE TABLE IF NOT EXISTS `cache_update` ( +DROP TABLE IF EXISTS `cache_update`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cache_update` ( `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.', `data` longblob COMMENT 'A collection of data to cache.', `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.', @@ -537,14 +546,25 @@ CREATE TABLE IF NOT EXISTS `cache_update` ( PRIMARY KEY (`cid`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Cache table for the Update module to store information...'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `cache_update` +-- + +LOCK TABLES `cache_update` WRITE; +/*!40000 ALTER TABLE `cache_update` DISABLE KEYS */; +/*!40000 ALTER TABLE `cache_update` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `comment` +-- Table structure for table `comment` -- -CREATE TABLE IF NOT EXISTS `comment` ( +DROP TABLE IF EXISTS `comment`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `comment` ( `cid` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique comment ID.', `pid` int(11) NOT NULL DEFAULT '0' COMMENT 'The comment.cid to which this comment is a reply. If set to 0, this comment is not a reply to an existing comment.', `nid` int(11) NOT NULL DEFAULT '0' COMMENT 'The node.nid to which this comment is a reply.', @@ -565,27 +585,27 @@ CREATE TABLE IF NOT EXISTS `comment` ( KEY `comment_uid` (`uid`), KEY `comment_nid_language` (`nid`,`language`), KEY `comment_created` (`created`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores comments and associated data.' AUTO_INCREMENT=7 ; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='Stores comments and associated data.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `comment` +-- Dumping data for table `comment` -- -INSERT INTO `comment` (`cid`, `pid`, `nid`, `uid`, `subject`, `hostname`, `created`, `changed`, `status`, `thread`, `name`, `mail`, `homepage`, `language`) VALUES -(1, 0, 7, 1, 'Fbortis feugiat turpis id', '::1', 1363631869, 1363631868, 1, '01/', 'admin', '', '', 'und'), -(2, 1, 7, 1, 'Sed lobortis feugiat turpis', '::1', 1363634289, 1363634288, 1, '01.00/', 'admin', '', '', 'und'), -(3, 2, 7, 1, 'test reply', '::1', 1363634731, 1363634730, 1, '01.00.00/', 'admin', '', '', 'und'), -(4, 0, 5, 1, 'test comment', '::1', 1363716284, 1363716283, 1, '01/', 'admin', '', '', 'und'), -(5, 0, 20, 1, 'Etiam tempor hendrerit', '::1', 1364418125, 1364418124, 1, '01/', 'admin', '', '', 'und'), -(6, 5, 20, 1, ' Aenean elementum mi id lorem', '::1', 1364849669, 1364849668, 1, '01.00/', 'admin', '', '', 'und'); - --- -------------------------------------------------------- +LOCK TABLES `comment` WRITE; +/*!40000 ALTER TABLE `comment` DISABLE KEYS */; +INSERT INTO `comment` VALUES (1,0,7,1,'Fbortis feugiat turpis id','::1',1363631869,1363631868,1,'01/','admin','','','und'),(2,1,7,1,'Sed lobortis feugiat turpis','::1',1363634289,1363634288,1,'01.00/','admin','','','und'),(3,2,7,1,'test reply','::1',1363634731,1363634730,1,'01.00.00/','admin','','','und'),(4,0,5,1,'test comment','::1',1363716284,1363716283,1,'01/','admin','','','und'),(5,0,20,1,'Etiam tempor hendrerit','::1',1364418125,1364418124,1,'01/','admin','','','und'),(6,5,20,1,' Aenean elementum mi id lorem','::1',1364849669,1364849668,1,'01.00/','admin','','','und'); +/*!40000 ALTER TABLE `comment` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `contact` +-- Table structure for table `contact` -- -CREATE TABLE IF NOT EXISTS `contact` ( +DROP TABLE IF EXISTS `contact`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `contact` ( `cid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique category ID.', `category` varchar(255) NOT NULL DEFAULT '' COMMENT 'Category name.', `recipients` longtext NOT NULL COMMENT 'Comma-separated list of recipient e-mail addresses.', @@ -595,114 +615,104 @@ CREATE TABLE IF NOT EXISTS `contact` ( PRIMARY KEY (`cid`), UNIQUE KEY `category` (`category`), KEY `list` (`weight`,`category`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Contact form category settings.' AUTO_INCREMENT=2 ; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='Contact form category settings.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `contact` +-- Dumping data for table `contact` -- -INSERT INTO `contact` (`cid`, `category`, `recipients`, `reply`, `weight`, `selected`) VALUES -(1, 'Website feedback', 'support@yoursite.com', '', 0, 1); - --- -------------------------------------------------------- +LOCK TABLES `contact` WRITE; +/*!40000 ALTER TABLE `contact` DISABLE KEYS */; +INSERT INTO `contact` VALUES (1,'Website feedback','support@yoursite.com','',0,1); +/*!40000 ALTER TABLE `contact` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `date_formats` +-- Table structure for table `date_format_locale` -- -CREATE TABLE IF NOT EXISTS `date_formats` ( - `dfid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'The date format identifier.', +DROP TABLE IF EXISTS `date_format_locale`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `date_format_locale` ( `format` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'The date format string.', `type` varchar(64) NOT NULL COMMENT 'The date format type, e.g. medium.', - `locked` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Whether or not this format can be modified.', - PRIMARY KEY (`dfid`), - UNIQUE KEY `formats` (`format`,`type`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores configured date formats.' AUTO_INCREMENT=36 ; - --- --- Άδειασμα δεδομένων του πίνακα `date_formats` --- - -INSERT INTO `date_formats` (`dfid`, `format`, `type`, `locked`) VALUES -(1, 'Y-m-d H:i', 'short', 1), -(2, 'm/d/Y - H:i', 'short', 1), -(3, 'd/m/Y - H:i', 'short', 1), -(4, 'Y/m/d - H:i', 'short', 1), -(5, 'd.m.Y - H:i', 'short', 1), -(6, 'm/d/Y - g:ia', 'short', 1), -(7, 'd/m/Y - g:ia', 'short', 1), -(8, 'Y/m/d - g:ia', 'short', 1), -(9, 'M j Y - H:i', 'short', 1), -(10, 'j M Y - H:i', 'short', 1), -(11, 'Y M j - H:i', 'short', 1), -(12, 'M j Y - g:ia', 'short', 1), -(13, 'j M Y - g:ia', 'short', 1), -(14, 'Y M j - g:ia', 'short', 1), -(15, 'D, Y-m-d H:i', 'medium', 1), -(16, 'D, m/d/Y - H:i', 'medium', 1), -(17, 'D, d/m/Y - H:i', 'medium', 1), -(18, 'D, Y/m/d - H:i', 'medium', 1), -(19, 'F j, Y - H:i', 'medium', 1), -(20, 'j F, Y - H:i', 'medium', 1), -(21, 'Y, F j - H:i', 'medium', 1), -(22, 'D, m/d/Y - g:ia', 'medium', 1), -(23, 'D, d/m/Y - g:ia', 'medium', 1), -(24, 'D, Y/m/d - g:ia', 'medium', 1), -(25, 'F j, Y - g:ia', 'medium', 1), -(26, 'j F Y - g:ia', 'medium', 1), -(27, 'Y, F j - g:ia', 'medium', 1), -(28, 'j. F Y - G:i', 'medium', 1), -(29, 'l, F j, Y - H:i', 'long', 1), -(30, 'l, j F, Y - H:i', 'long', 1), -(31, 'l, Y, F j - H:i', 'long', 1), -(32, 'l, F j, Y - g:ia', 'long', 1), -(33, 'l, j F Y - g:ia', 'long', 1), -(34, 'l, Y, F j - g:ia', 'long', 1), -(35, 'l, j. F Y - G:i', 'long', 1); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `date_format_locale` --- - -CREATE TABLE IF NOT EXISTS `date_format_locale` ( - `format` varchar(100) NOT NULL COMMENT 'The date format string.', - `type` varchar(64) NOT NULL COMMENT 'The date format type, e.g. medium.', `language` varchar(12) NOT NULL COMMENT 'A languages.language for this format to be used with.', PRIMARY KEY (`type`,`language`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores configured date formats for each locale.'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `date_format_locale` +-- + +LOCK TABLES `date_format_locale` WRITE; +/*!40000 ALTER TABLE `date_format_locale` DISABLE KEYS */; +/*!40000 ALTER TABLE `date_format_locale` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `date_format_type` +-- Table structure for table `date_format_type` -- -CREATE TABLE IF NOT EXISTS `date_format_type` ( +DROP TABLE IF EXISTS `date_format_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `date_format_type` ( `type` varchar(64) NOT NULL COMMENT 'The date format type, e.g. medium.', `title` varchar(255) NOT NULL COMMENT 'The human readable name of the format type.', `locked` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Whether or not this is a system provided format.', PRIMARY KEY (`type`), KEY `title` (`title`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores configured date format types.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `date_format_type` +-- + +LOCK TABLES `date_format_type` WRITE; +/*!40000 ALTER TABLE `date_format_type` DISABLE KEYS */; +INSERT INTO `date_format_type` VALUES ('long','Long',1),('medium','Medium',1),('short','Short',1); +/*!40000 ALTER TABLE `date_format_type` ENABLE KEYS */; +UNLOCK TABLES; -- --- Άδειασμα δεδομένων του πίνακα `date_format_type` +-- Table structure for table `date_formats` -- -INSERT INTO `date_format_type` (`type`, `title`, `locked`) VALUES -('long', 'Long', 1), -('medium', 'Medium', 1), -('short', 'Short', 1); +DROP TABLE IF EXISTS `date_formats`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `date_formats` ( + `dfid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'The date format identifier.', + `format` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'The date format string.', + `type` varchar(64) NOT NULL COMMENT 'The date format type, e.g. medium.', + `locked` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Whether or not this format can be modified.', + PRIMARY KEY (`dfid`), + UNIQUE KEY `formats` (`format`,`type`) +) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8 COMMENT='Stores configured date formats.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `date_formats` +-- --- -------------------------------------------------------- +LOCK TABLES `date_formats` WRITE; +/*!40000 ALTER TABLE `date_formats` DISABLE KEYS */; +INSERT INTO `date_formats` VALUES (1,'Y-m-d H:i','short',1),(2,'m/d/Y - H:i','short',1),(3,'d/m/Y - H:i','short',1),(4,'Y/m/d - H:i','short',1),(5,'d.m.Y - H:i','short',1),(6,'m/d/Y - g:ia','short',1),(7,'d/m/Y - g:ia','short',1),(8,'Y/m/d - g:ia','short',1),(9,'M j Y - H:i','short',1),(10,'j M Y - H:i','short',1),(11,'Y M j - H:i','short',1),(12,'M j Y - g:ia','short',1),(13,'j M Y - g:ia','short',1),(14,'Y M j - g:ia','short',1),(15,'D, Y-m-d H:i','medium',1),(16,'D, m/d/Y - H:i','medium',1),(17,'D, d/m/Y - H:i','medium',1),(18,'D, Y/m/d - H:i','medium',1),(19,'F j, Y - H:i','medium',1),(20,'j F, Y - H:i','medium',1),(21,'Y, F j - H:i','medium',1),(22,'D, m/d/Y - g:ia','medium',1),(23,'D, d/m/Y - g:ia','medium',1),(24,'D, Y/m/d - g:ia','medium',1),(25,'F j, Y - g:ia','medium',1),(26,'j F Y - g:ia','medium',1),(27,'Y, F j - g:ia','medium',1),(28,'j. F Y - G:i','medium',1),(29,'l, F j, Y - H:i','long',1),(30,'l, j F, Y - H:i','long',1),(31,'l, Y, F j - H:i','long',1),(32,'l, F j, Y - g:ia','long',1),(33,'l, j F Y - g:ia','long',1),(34,'l, Y, F j - g:ia','long',1),(35,'l, j. F Y - G:i','long',1); +/*!40000 ALTER TABLE `date_formats` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_config` +-- Table structure for table `field_config` -- -CREATE TABLE IF NOT EXISTS `field_config` ( +DROP TABLE IF EXISTS `field_config`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_config` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'The primary identifier for a field', `field_name` varchar(32) NOT NULL COMMENT 'The name of this field. Non-deleted field names are unique, but multiple deleted fields can have the same name.', `type` varchar(128) NOT NULL COMMENT 'The type of this field.', @@ -725,25 +735,27 @@ CREATE TABLE IF NOT EXISTS `field_config` ( KEY `storage_module` (`storage_module`), KEY `type` (`type`), KEY `storage_type` (`storage_type`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `field_config` +-- Dumping data for table `field_config` -- -INSERT INTO `field_config` (`id`, `field_name`, `type`, `module`, `active`, `storage_type`, `storage_module`, `storage_active`, `locked`, `data`, `cardinality`, `translatable`, `deleted`) VALUES -(1, 'comment_body', 'text_long', 'text', 1, 'field_sql_storage', 'field_sql_storage', 1, 0, 0x613a363a7b733a31323a22656e746974795f7479706573223b613a313a7b693a303b733a373a22636f6d6d656e74223b7d733a31323a227472616e736c617461626c65223b623a303b733a383a2273657474696e6773223b613a303a7b7d733a373a2273746f72616765223b613a343a7b733a343a2274797065223b733a31373a226669656c645f73716c5f73746f72616765223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a31373a226669656c645f73716c5f73746f72616765223b733a363a22616374697665223b693a313b7d733a31323a22666f726569676e206b657973223b613a313a7b733a363a22666f726d6174223b613a323a7b733a353a227461626c65223b733a31333a2266696c7465725f666f726d6174223b733a373a22636f6c756d6e73223b613a313a7b733a363a22666f726d6174223b733a363a22666f726d6174223b7d7d7d733a373a22696e6465786573223b613a313a7b733a363a22666f726d6174223b613a313a7b693a303b733a363a22666f726d6174223b7d7d7d, 1, 0, 0), -(2, 'body', 'text_with_summary', 'text', 1, 'field_sql_storage', 'field_sql_storage', 1, 0, 0x613a363a7b733a31323a22656e746974795f7479706573223b613a313a7b693a303b733a343a226e6f6465223b7d733a31323a227472616e736c617461626c65223b623a303b733a383a2273657474696e6773223b613a303a7b7d733a373a2273746f72616765223b613a343a7b733a343a2274797065223b733a31373a226669656c645f73716c5f73746f72616765223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a31373a226669656c645f73716c5f73746f72616765223b733a363a22616374697665223b693a313b7d733a31323a22666f726569676e206b657973223b613a313a7b733a363a22666f726d6174223b613a323a7b733a353a227461626c65223b733a31333a2266696c7465725f666f726d6174223b733a373a22636f6c756d6e73223b613a313a7b733a363a22666f726d6174223b733a363a22666f726d6174223b7d7d7d733a373a22696e6465786573223b613a313a7b733a363a22666f726d6174223b613a313a7b693a303b733a363a22666f726d6174223b7d7d7d, 1, 0, 0), -(3, 'field_tags', 'taxonomy_term_reference', 'taxonomy', 1, 'field_sql_storage', 'field_sql_storage', 1, 0, 0x613a373a7b733a383a2273657474696e6773223b613a313a7b733a31343a22616c6c6f7765645f76616c756573223b613a313a7b693a303b613a323a7b733a31303a22766f636162756c617279223b733a343a2274616773223b733a363a22706172656e74223b693a303b7d7d7d733a31323a22656e746974795f7479706573223b613a303a7b7d733a31323a227472616e736c617461626c65223b733a313a2230223b733a373a2273746f72616765223b613a353a7b733a343a2274797065223b733a31373a226669656c645f73716c5f73746f72616765223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a31373a226669656c645f73716c5f73746f72616765223b733a363a22616374697665223b733a313a2231223b733a373a2264657461696c73223b613a313a7b733a333a2273716c223b613a323a7b733a31383a224649454c445f4c4f41445f43555252454e54223b613a313a7b733a32313a226669656c645f646174615f6669656c645f74616773223b613a313a7b733a333a22746964223b733a31343a226669656c645f746167735f746964223b7d7d733a31393a224649454c445f4c4f41445f5245564953494f4e223b613a313a7b733a32353a226669656c645f7265766973696f6e5f6669656c645f74616773223b613a313a7b733a333a22746964223b733a31343a226669656c645f746167735f746964223b7d7d7d7d7d733a31323a22666f726569676e206b657973223b613a313a7b733a333a22746964223b613a323a7b733a353a227461626c65223b733a31383a227461786f6e6f6d795f7465726d5f64617461223b733a373a22636f6c756d6e73223b613a313a7b733a333a22746964223b733a333a22746964223b7d7d7d733a373a22696e6465786573223b613a313a7b733a333a22746964223b613a313a7b693a303b733a333a22746964223b7d7d733a323a226964223b733a313a2233223b7d, -1, 0, 0), -(4, 'field_image', 'image', 'image', 1, 'field_sql_storage', 'field_sql_storage', 1, 0, 0x613a363a7b733a373a22696e6465786573223b613a313a7b733a333a22666964223b613a313a7b693a303b733a333a22666964223b7d7d733a383a2273657474696e6773223b613a323a7b733a31303a227572695f736368656d65223b733a363a227075626c6963223b733a31333a2264656661756c745f696d616765223b623a303b7d733a373a2273746f72616765223b613a343a7b733a343a2274797065223b733a31373a226669656c645f73716c5f73746f72616765223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a31373a226669656c645f73716c5f73746f72616765223b733a363a22616374697665223b693a313b7d733a31323a22656e746974795f7479706573223b613a303a7b7d733a31323a227472616e736c617461626c65223b623a303b733a31323a22666f726569676e206b657973223b613a313a7b733a333a22666964223b613a323a7b733a353a227461626c65223b733a31323a2266696c655f6d616e61676564223b733a373a22636f6c756d6e73223b613a313a7b733a333a22666964223b733a333a22666964223b7d7d7d7d, 1, 0, 0); - --- -------------------------------------------------------- +LOCK TABLES `field_config` WRITE; +/*!40000 ALTER TABLE `field_config` DISABLE KEYS */; +INSERT INTO `field_config` VALUES (1,'comment_body','text_long','text',1,'field_sql_storage','field_sql_storage',1,0,'a:6:{s:12:\"entity_types\";a:1:{i:0;s:7:\"comment\";}s:12:\"translatable\";b:0;s:8:\"settings\";a:0:{}s:7:\"storage\";a:4:{s:4:\"type\";s:17:\"field_sql_storage\";s:8:\"settings\";a:0:{}s:6:\"module\";s:17:\"field_sql_storage\";s:6:\"active\";i:1;}s:12:\"foreign keys\";a:1:{s:6:\"format\";a:2:{s:5:\"table\";s:13:\"filter_format\";s:7:\"columns\";a:1:{s:6:\"format\";s:6:\"format\";}}}s:7:\"indexes\";a:1:{s:6:\"format\";a:1:{i:0;s:6:\"format\";}}}',1,0,0),(2,'body','text_with_summary','text',1,'field_sql_storage','field_sql_storage',1,0,'a:6:{s:12:\"entity_types\";a:1:{i:0;s:4:\"node\";}s:12:\"translatable\";b:0;s:8:\"settings\";a:0:{}s:7:\"storage\";a:4:{s:4:\"type\";s:17:\"field_sql_storage\";s:8:\"settings\";a:0:{}s:6:\"module\";s:17:\"field_sql_storage\";s:6:\"active\";i:1;}s:12:\"foreign keys\";a:1:{s:6:\"format\";a:2:{s:5:\"table\";s:13:\"filter_format\";s:7:\"columns\";a:1:{s:6:\"format\";s:6:\"format\";}}}s:7:\"indexes\";a:1:{s:6:\"format\";a:1:{i:0;s:6:\"format\";}}}',1,0,0),(3,'field_tags','taxonomy_term_reference','taxonomy',1,'field_sql_storage','field_sql_storage',1,0,'a:7:{s:8:\"settings\";a:1:{s:14:\"allowed_values\";a:1:{i:0;a:2:{s:10:\"vocabulary\";s:4:\"tags\";s:6:\"parent\";i: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\";}',-1,0,0),(4,'field_image','image','image',1,'field_sql_storage','field_sql_storage',1,0,'a:6:{s:7:\"indexes\";a:1:{s:3:\"fid\";a:1:{i:0;s:3:\"fid\";}}s:8:\"settings\";a:2:{s:10:\"uri_scheme\";s:6:\"public\";s:13:\"default_image\";b:0;}s:7:\"storage\";a:4:{s:4:\"type\";s:17:\"field_sql_storage\";s:8:\"settings\";a:0:{}s:6:\"module\";s:17:\"field_sql_storage\";s:6:\"active\";i:1;}s:12:\"entity_types\";a:0:{}s:12:\"translatable\";b:0;s:12:\"foreign keys\";a:1:{s:3:\"fid\";a:2:{s:5:\"table\";s:12:\"file_managed\";s:7:\"columns\";a:1:{s:3:\"fid\";s:3:\"fid\";}}}}',1,0,0); +/*!40000 ALTER TABLE `field_config` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_config_instance` +-- Table structure for table `field_config_instance` -- -CREATE TABLE IF NOT EXISTS `field_config_instance` ( +DROP TABLE IF EXISTS `field_config_instance`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_config_instance` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'The primary identifier for a field instance', `field_id` int(11) NOT NULL COMMENT 'The identifier of the field attached by this instance', `field_name` varchar(32) NOT NULL DEFAULT '', @@ -754,30 +766,27 @@ CREATE TABLE IF NOT EXISTS `field_config_instance` ( PRIMARY KEY (`id`), KEY `field_name_bundle` (`field_name`,`entity_type`,`bundle`), KEY `deleted` (`deleted`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `field_config_instance` +-- Dumping data for table `field_config_instance` -- -INSERT INTO `field_config_instance` (`id`, `field_id`, `field_name`, `entity_type`, `bundle`, `data`, `deleted`) VALUES -(1, 1, 'comment_body', 'comment', 'comment_node_page', 0x613a363a7b733a353a226c6162656c223b733a373a22436f6d6d656e74223b733a383a2273657474696e6773223b613a323a7b733a31353a22746578745f70726f63657373696e67223b693a313b733a31383a22757365725f72656769737465725f666f726d223b623a303b7d733a383a227265717569726564223b623a313b733a373a22646973706c6179223b613a313a7b733a373a2264656661756c74223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a31323a22746578745f64656661756c74223b733a363a22776569676874223b693a303b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a343a2274657874223b7d7d733a363a22776964676574223b613a343a7b733a343a2274797065223b733a31333a22746578745f7465787461726561223b733a383a2273657474696e6773223b613a313a7b733a343a22726f7773223b693a353b7d733a363a22776569676874223b693a303b733a363a226d6f64756c65223b733a343a2274657874223b7d733a31313a226465736372697074696f6e223b733a303a22223b7d, 0), -(2, 2, 'body', 'node', 'page', 0x613a363a7b733a353a226c6162656c223b733a343a22426f6479223b733a363a22776964676574223b613a343a7b733a343a2274797065223b733a32363a22746578745f74657874617265615f776974685f73756d6d617279223b733a383a2273657474696e6773223b613a323a7b733a343a22726f7773223b693a32303b733a31323a2273756d6d6172795f726f7773223b693a353b7d733a363a22776569676874223b693a2d343b733a363a226d6f64756c65223b733a343a2274657874223b7d733a383a2273657474696e6773223b613a333a7b733a31353a22646973706c61795f73756d6d617279223b623a313b733a31353a22746578745f70726f63657373696e67223b693a313b733a31383a22757365725f72656769737465725f666f726d223b623a303b7d733a373a22646973706c6179223b613a323a7b733a373a2264656661756c74223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a31323a22746578745f64656661756c74223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a343a2274657874223b733a363a22776569676874223b693a303b7d733a363a22746561736572223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a32333a22746578745f73756d6d6172795f6f725f7472696d6d6564223b733a383a2273657474696e6773223b613a313a7b733a31313a227472696d5f6c656e677468223b693a3630303b7d733a363a226d6f64756c65223b733a343a2274657874223b733a363a22776569676874223b693a303b7d7d733a383a227265717569726564223b623a303b733a31313a226465736372697074696f6e223b733a303a22223b7d, 0), -(3, 1, 'comment_body', 'comment', 'comment_node_article', 0x613a363a7b733a353a226c6162656c223b733a373a22436f6d6d656e74223b733a383a2273657474696e6773223b613a323a7b733a31353a22746578745f70726f63657373696e67223b693a313b733a31383a22757365725f72656769737465725f666f726d223b623a303b7d733a383a227265717569726564223b623a313b733a373a22646973706c6179223b613a313a7b733a373a2264656661756c74223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a31323a22746578745f64656661756c74223b733a363a22776569676874223b693a303b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a343a2274657874223b7d7d733a363a22776964676574223b613a343a7b733a343a2274797065223b733a31333a22746578745f7465787461726561223b733a383a2273657474696e6773223b613a313a7b733a343a22726f7773223b693a353b7d733a363a22776569676874223b693a303b733a363a226d6f64756c65223b733a343a2274657874223b7d733a31313a226465736372697074696f6e223b733a303a22223b7d, 0), -(4, 2, 'body', 'node', 'article', 0x613a363a7b733a353a226c6162656c223b733a343a22426f6479223b733a363a22776964676574223b613a343a7b733a343a2274797065223b733a32363a22746578745f74657874617265615f776974685f73756d6d617279223b733a383a2273657474696e6773223b613a323a7b733a343a22726f7773223b693a32303b733a31323a2273756d6d6172795f726f7773223b693a353b7d733a363a22776569676874223b733a313a2232223b733a363a226d6f64756c65223b733a343a2274657874223b7d733a383a2273657474696e6773223b613a333a7b733a31353a22646973706c61795f73756d6d617279223b623a313b733a31353a22746578745f70726f63657373696e67223b693a313b733a31383a22757365725f72656769737465725f666f726d223b623a303b7d733a373a22646973706c6179223b613a323a7b733a373a2264656661756c74223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a31323a22746578745f64656661756c74223b733a363a22776569676874223b733a313a2230223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a343a2274657874223b7d733a363a22746561736572223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a32333a22746578745f73756d6d6172795f6f725f7472696d6d6564223b733a363a22776569676874223b733a313a2231223b733a383a2273657474696e6773223b613a313a7b733a31313a227472696d5f6c656e677468223b693a3630303b7d733a363a226d6f64756c65223b733a343a2274657874223b7d7d733a383a227265717569726564223b623a303b733a31313a226465736372697074696f6e223b733a303a22223b7d, 0), -(5, 3, 'field_tags', 'node', 'article', 0x613a363a7b733a353a226c6162656c223b733a343a2254616773223b733a31313a226465736372697074696f6e223b733a36333a22456e746572206120636f6d6d612d736570617261746564206c697374206f6620776f72647320746f20646573637269626520796f757220636f6e74656e742e223b733a363a22776964676574223b613a343a7b733a343a2274797065223b733a32313a227461786f6e6f6d795f6175746f636f6d706c657465223b733a363a22776569676874223b733a313a2231223b733a383a2273657474696e6773223b613a323a7b733a343a2273697a65223b693a36303b733a31373a226175746f636f6d706c6574655f70617468223b733a32313a227461786f6e6f6d792f6175746f636f6d706c657465223b7d733a363a226d6f64756c65223b733a383a227461786f6e6f6d79223b7d733a373a22646973706c6179223b613a323a7b733a373a2264656661756c74223b613a353a7b733a353a226c6162656c223b733a353a2261626f7665223b733a343a2274797065223b733a32383a227461786f6e6f6d795f7465726d5f7265666572656e63655f6c696e6b223b733a363a22776569676874223b733a323a223130223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a383a227461786f6e6f6d79223b7d733a363a22746561736572223b613a353a7b733a353a226c6162656c223b733a353a2261626f7665223b733a343a2274797065223b733a32383a227461786f6e6f6d795f7465726d5f7265666572656e63655f6c696e6b223b733a363a22776569676874223b733a313a2232223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a383a227461786f6e6f6d79223b7d7d733a383a2273657474696e6773223b613a313a7b733a31383a22757365725f72656769737465725f666f726d223b623a303b7d733a383a227265717569726564223b623a303b7d, 0), -(6, 4, 'field_image', 'node', 'article', 0x613a363a7b733a353a226c6162656c223b733a353a22496d616765223b733a31313a226465736372697074696f6e223b733a34303a2255706c6f616420616e20696d61676520746f20676f207769746820746869732061727469636c652e223b733a383a227265717569726564223b623a303b733a383a2273657474696e6773223b613a393a7b733a31343a2266696c655f6469726563746f7279223b733a31313a226669656c642f696d616765223b733a31353a2266696c655f657874656e73696f6e73223b733a31363a22706e6720676966206a7067206a706567223b733a31323a226d61785f66696c6573697a65223b733a303a22223b733a31343a226d61785f7265736f6c7574696f6e223b733a303a22223b733a31343a226d696e5f7265736f6c7574696f6e223b733a303a22223b733a393a22616c745f6669656c64223b623a313b733a31313a227469746c655f6669656c64223b733a303a22223b733a31333a2264656661756c745f696d616765223b693a303b733a31383a22757365725f72656769737465725f666f726d223b623a303b7d733a363a22776964676574223b613a343a7b733a343a2274797065223b733a31313a22696d6167655f696d616765223b733a383a2273657474696e6773223b613a323a7b733a31383a2270726f67726573735f696e64696361746f72223b733a383a227468726f62626572223b733a31393a22707265766965775f696d6167655f7374796c65223b733a393a227468756d626e61696c223b7d733a363a22776569676874223b733a313a2233223b733a363a226d6f64756c65223b733a353a22696d616765223b7d733a373a22646973706c6179223b613a323a7b733a373a2264656661756c74223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a353a22696d616765223b733a363a22776569676874223b733a323a222d31223b733a383a2273657474696e6773223b613a323a7b733a31313a22696d6167655f7374796c65223b733a353a226c61726765223b733a31303a22696d6167655f6c696e6b223b733a303a22223b7d733a363a226d6f64756c65223b733a353a22696d616765223b7d733a363a22746561736572223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a353a22696d616765223b733a363a22776569676874223b733a313a2230223b733a383a2273657474696e6773223b613a323a7b733a31313a22696d6167655f7374796c65223b733a363a226d656469756d223b733a31303a22696d6167655f6c696e6b223b733a373a22636f6e74656e74223b7d733a363a226d6f64756c65223b733a353a22696d616765223b7d7d7d, 0), -(7, 1, 'comment_body', 'comment', 'comment_node_blog', 0x613a363a7b733a353a226c6162656c223b733a373a22436f6d6d656e74223b733a383a2273657474696e6773223b613a323a7b733a31353a22746578745f70726f63657373696e67223b693a313b733a31383a22757365725f72656769737465725f666f726d223b623a303b7d733a383a227265717569726564223b623a313b733a373a22646973706c6179223b613a313a7b733a373a2264656661756c74223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a31323a22746578745f64656661756c74223b733a363a22776569676874223b693a303b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a343a2274657874223b7d7d733a363a22776964676574223b613a343a7b733a343a2274797065223b733a31333a22746578745f7465787461726561223b733a383a2273657474696e6773223b613a313a7b733a343a22726f7773223b693a353b7d733a363a22776569676874223b693a303b733a363a226d6f64756c65223b733a343a2274657874223b7d733a31313a226465736372697074696f6e223b733a303a22223b7d, 0), -(8, 2, 'body', 'node', 'blog', 0x613a363a7b733a353a226c6162656c223b733a343a22426f6479223b733a363a22776964676574223b613a343a7b733a343a2274797065223b733a32363a22746578745f74657874617265615f776974685f73756d6d617279223b733a383a2273657474696e6773223b613a323a7b733a343a22726f7773223b693a32303b733a31323a2273756d6d6172795f726f7773223b693a353b7d733a363a22776569676874223b733a313a2232223b733a363a226d6f64756c65223b733a343a2274657874223b7d733a383a2273657474696e6773223b613a333a7b733a31353a22646973706c61795f73756d6d617279223b623a313b733a31353a22746578745f70726f63657373696e67223b693a313b733a31383a22757365725f72656769737465725f666f726d223b623a303b7d733a373a22646973706c6179223b613a323a7b733a373a2264656661756c74223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a31323a22746578745f64656661756c74223b733a363a22776569676874223b733a313a2230223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a343a2274657874223b7d733a363a22746561736572223b613a353a7b733a353a226c6162656c223b733a363a2268696464656e223b733a343a2274797065223b733a32333a22746578745f73756d6d6172795f6f725f7472696d6d6564223b733a363a22776569676874223b733a313a2230223b733a383a2273657474696e6773223b613a313a7b733a31313a227472696d5f6c656e677468223b693a3630303b7d733a363a226d6f64756c65223b733a343a2274657874223b7d7d733a383a227265717569726564223b623a303b733a31313a226465736372697074696f6e223b733a303a22223b7d, 0), -(11, 3, 'field_tags', 'node', 'blog', 0x613a373a7b733a353a226c6162656c223b733a343a2254616773223b733a363a22776964676574223b613a353a7b733a363a22776569676874223b733a313a2231223b733a343a2274797065223b733a31343a226f7074696f6e735f73656c656374223b733a363a226d6f64756c65223b733a373a226f7074696f6e73223b733a363a22616374697665223b693a303b733a383a2273657474696e6773223b613a323a7b733a343a2273697a65223b693a36303b733a31373a226175746f636f6d706c6574655f70617468223b733a32313a227461786f6e6f6d792f6175746f636f6d706c657465223b7d7d733a383a2273657474696e6773223b613a313a7b733a31383a22757365725f72656769737465725f666f726d223b623a303b7d733a373a22646973706c6179223b613a323a7b733a373a2264656661756c74223b613a353a7b733a353a226c6162656c223b733a353a2261626f7665223b733a343a2274797065223b733a32383a227461786f6e6f6d795f7465726d5f7265666572656e63655f6c696e6b223b733a363a22776569676874223b733a313a2232223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a383a227461786f6e6f6d79223b7d733a363a22746561736572223b613a353a7b733a353a226c6162656c223b733a353a2261626f7665223b733a343a2274797065223b733a32383a227461786f6e6f6d795f7465726d5f7265666572656e63655f6c696e6b223b733a363a22776569676874223b733a313a2231223b733a383a2273657474696e6773223b613a303a7b7d733a363a226d6f64756c65223b733a383a227461786f6e6f6d79223b7d7d733a383a227265717569726564223b693a303b733a31313a226465736372697074696f6e223b733a303a22223b733a31333a2264656661756c745f76616c7565223b4e3b7d, 0); - --- -------------------------------------------------------- +LOCK TABLES `field_config_instance` WRITE; +/*!40000 ALTER TABLE `field_config_instance` DISABLE KEYS */; +INSERT INTO `field_config_instance` VALUES (1,1,'comment_body','comment','comment_node_page','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:\"\";}',0),(2,2,'body','node','page','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:\"\";}',0),(3,1,'comment_body','comment','comment_node_article','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:\"\";}',0),(4,2,'body','node','article','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\";s:1:\"2\";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:6:\"weight\";s:1:\"0\";s:8:\"settings\";a:0:{}s:6:\"module\";s:4:\"text\";}s:6:\"teaser\";a:5:{s:5:\"label\";s:6:\"hidden\";s:4:\"type\";s:23:\"text_summary_or_trimmed\";s:6:\"weight\";s:1:\"1\";s:8:\"settings\";a:1:{s:11:\"trim_length\";i:600;}s:6:\"module\";s:4:\"text\";}}s:8:\"required\";b:0;s:11:\"description\";s:0:\"\";}',0),(5,3,'field_tags','node','article','a:6:{s:5:\"label\";s:4:\"Tags\";s:11:\"description\";s:63:\"Enter a comma-separated list of words to describe your content.\";s:6:\"widget\";a:4:{s:4:\"type\";s:21:\"taxonomy_autocomplete\";s:6:\"weight\";s:1:\"1\";s:8:\"settings\";a:2:{s:4:\"size\";i:60;s:17:\"autocomplete_path\";s:21:\"taxonomy/autocomplete\";}s:6:\"module\";s:8:\"taxonomy\";}s:7:\"display\";a:2:{s:7:\"default\";a:5:{s:5:\"label\";s:5:\"above\";s:4:\"type\";s:28:\"taxonomy_term_reference_link\";s:6:\"weight\";s:2:\"10\";s:8:\"settings\";a:0:{}s:6:\"module\";s:8:\"taxonomy\";}s:6:\"teaser\";a:5:{s:5:\"label\";s:5:\"above\";s:4:\"type\";s:28:\"taxonomy_term_reference_link\";s:6:\"weight\";s:1:\"2\";s:8:\"settings\";a:0:{}s:6:\"module\";s:8:\"taxonomy\";}}s:8:\"settings\";a:1:{s:18:\"user_register_form\";b:0;}s:8:\"required\";b:0;}',0),(6,4,'field_image','node','article','a:6:{s:5:\"label\";s:5:\"Image\";s:11:\"description\";s:40:\"Upload an image to go with this article.\";s:8:\"required\";b:0;s:8:\"settings\";a:9:{s:14:\"file_directory\";s:11:\"field/image\";s:15:\"file_extensions\";s:16:\"png gif jpg jpeg\";s:12:\"max_filesize\";s:0:\"\";s:14:\"max_resolution\";s:0:\"\";s:14:\"min_resolution\";s:0:\"\";s:9:\"alt_field\";b:1;s:11:\"title_field\";s:0:\"\";s:13:\"default_image\";i:0;s:18:\"user_register_form\";b:0;}s:6:\"widget\";a:4:{s:4:\"type\";s:11:\"image_image\";s:8:\"settings\";a:2:{s:18:\"progress_indicator\";s:8:\"throbber\";s:19:\"preview_image_style\";s:9:\"thumbnail\";}s:6:\"weight\";s:1:\"3\";s:6:\"module\";s:5:\"image\";}s:7:\"display\";a:2:{s:7:\"default\";a:5:{s:5:\"label\";s:6:\"hidden\";s:4:\"type\";s:5:\"image\";s:6:\"weight\";s:2:\"-1\";s:8:\"settings\";a:2:{s:11:\"image_style\";s:5:\"large\";s:10:\"image_link\";s:0:\"\";}s:6:\"module\";s:5:\"image\";}s:6:\"teaser\";a:5:{s:5:\"label\";s:6:\"hidden\";s:4:\"type\";s:5:\"image\";s:6:\"weight\";s:1:\"0\";s:8:\"settings\";a:2:{s:11:\"image_style\";s:6:\"medium\";s:10:\"image_link\";s:7:\"content\";}s:6:\"module\";s:5:\"image\";}}}',0),(7,1,'comment_body','comment','comment_node_blog','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:\"\";}',0),(8,2,'body','node','blog','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\";s:1:\"2\";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:6:\"weight\";s:1:\"0\";s:8:\"settings\";a:0:{}s:6:\"module\";s:4:\"text\";}s:6:\"teaser\";a:5:{s:5:\"label\";s:6:\"hidden\";s:4:\"type\";s:23:\"text_summary_or_trimmed\";s:6:\"weight\";s:1:\"0\";s:8:\"settings\";a:1:{s:11:\"trim_length\";i:600;}s:6:\"module\";s:4:\"text\";}}s:8:\"required\";b:0;s:11:\"description\";s:0:\"\";}',0),(11,3,'field_tags','node','blog','a:7:{s:5:\"label\";s:4:\"Tags\";s:6:\"widget\";a:5:{s:6:\"weight\";s:1:\"1\";s:4:\"type\";s:14:\"options_select\";s:6:\"module\";s:7:\"options\";s:6:\"active\";i:0;s:8:\"settings\";a:2:{s:4:\"size\";i:60;s:17:\"autocomplete_path\";s:21:\"taxonomy/autocomplete\";}}s:8:\"settings\";a:1:{s:18:\"user_register_form\";b:0;}s:7:\"display\";a:2:{s:7:\"default\";a:5:{s:5:\"label\";s:5:\"above\";s:4:\"type\";s:28:\"taxonomy_term_reference_link\";s:6:\"weight\";s:1:\"2\";s:8:\"settings\";a:0:{}s:6:\"module\";s:8:\"taxonomy\";}s:6:\"teaser\";a:5:{s:5:\"label\";s:5:\"above\";s:4:\"type\";s:28:\"taxonomy_term_reference_link\";s:6:\"weight\";s:1:\"1\";s:8:\"settings\";a:0:{}s:6:\"module\";s:8:\"taxonomy\";}}s:8:\"required\";i:0;s:11:\"description\";s:0:\"\";s:13:\"default_value\";N;}',0); +/*!40000 ALTER TABLE `field_config_instance` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_data_body` +-- Table structure for table `field_data_body` -- -CREATE TABLE IF NOT EXISTS `field_data_body` ( +DROP TABLE IF EXISTS `field_data_body`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_data_body` ( `entity_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'The entity type this data is attached to', `bundle` varchar(128) NOT NULL DEFAULT '' COMMENT 'The field instance bundle to which this row belongs, used when deleting a field instance', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'A boolean indicating whether this data item has been deleted', @@ -797,41 +806,26 @@ CREATE TABLE IF NOT EXISTS `field_data_body` ( KEY `language` (`language`), KEY `body_format` (`body_format`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Data storage for field 2 (body)'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `field_data_body` +-- Dumping data for table `field_data_body` -- -INSERT INTO `field_data_body` (`entity_type`, `bundle`, `deleted`, `entity_id`, `revision_id`, `language`, `delta`, `body_value`, `body_summary`, `body_format`) VALUES -('node', 'page', 0, 1, 1, 'und', 0, '\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend. Aenean aucibus ultrices mi et tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.Proin in tempor enim.Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.Vestibulum eu tincidunt mauris.

\r\n

In tempus odio sit amet odio pellentesque sollicitudin.

\r\n

Vestibulum pretium metus a enim semper blandit. Maecenas sollicitudin ornare libero eu pharetra. Etiam metus risus, posuere sit amet volutpat vitae, placerat sed ligula. Morbi ipsum mi, interdum sed lementum ac, sollicitudin vel urna. Vestibulum sed congue magna. Integer velit diam, porttitor tempor luctus at, adipiscing eget nulla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla faucibus, est eget ullamcorper condimentum, enim nisl luctus sem, sit amet mollis orci eros eget quam. Donec et augue libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam dictum consequat porta.

\r\n
    \r\n
  • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  • \r\n
  • Vivamus iaculis rutrum orci, id hendrerit sapien imperdiet id.
  • \r\n
\r\n

Quisque eu nibh enim, ac aliquam nunc. Integer ultricies cursus mattis. Donec tristique est ac massa vehicula non sollicitudin odio blandit. Nam lacus purus, vulputate et viverra ac, mattis congue nunc. Donec aliquam sagittis porttitor. Aenean sit amet orci ac neque posuere tristique. Morbi mollis, nisi eu varius laoreet, quam lacus venenatis mauris, non commodo lectus eros vitae ipsum. Nam non neque nunc, tincidunt molestie tortor. Nulla tristique dolor at nisi tempor pretium. Phasellus non nisl nec mauris rhoncus iaculis.

\r\n

Cras vel orci sapien, vitae viverra diam. Morbi sodales enim ut neque sagittis pellentesque. Aliquam erat volutpat. Curabitur nisl libero, vehicula vel blandit vitae, pharetra eu nulla. Aliquam eu lectus eget metus condimentum bibendum. Nullam sapien nulla, consectetur vitae vestibulum in, cursus et nunc. Aliquam ipsum risus, tincidunt at sagittis vel, commodo non lectus. Nulla mollis fermentum nunc. Praesent interdum fringilla nisl.

\r\n

Curabitur volutpat massa eu felis ultrices sodales. Donec rhoncus, diamvel interdum elementum, turpis neque volutpat orci, eu molestie magna duiid justo. Ut sodales fringilla ante, ullamcorper elementum lectus ullamcorper euismod. Vestibulum scelerisque ornare magna at egestas. Donec in tellus est. Nullam egestas tincidunt pretium. Nunc id diam id felis dapibus euismod. Sed feugiat lacinia eros, sed interdum nunc porttitor et. Mauris a justo sit amet turpis convallis rhoncus. Suspendisse tincidunt neque ac libero varius volutpat. Suspendisse quis ipsum leo.

\r\n
\r\n\r\n\r\n', '', 'php_code'), -('node', 'article', 0, 2, 2, 'und', 0, 'This is an example page. It’s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:', '', 'full_html'), -('node', 'blog', 0, 3, 3, 'und', 0, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum. Maecenas nec neque a justo tincidunt dictum.\r\n\r\nNulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.\r\n\r\nVivamus id ante neque, vel vulputate dui. Maecenas et dui justo. Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.\r\n\r\nNullam mattis, risus id cursus consequat, ipsum mauris tincidunt purus, quis placerat nulla nunc at diam. Proin ut nulla quis augue mollis sodales. Curabitur nec urna erat. Donec eget nulla eget quam dapibus varius commodo malesuada urna. Aenean sodales rhoncus sagittis. Mauris eget iaculis felis. In hac habitasse platea dictumst.', '', 'full_html'), -('node', 'blog', 0, 4, 4, 'und', 0, '

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend. Aenean faucibus ultrices mi et tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.Proin in tempor enim. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

\r\n

Vestibulum eu tincidunt mauris. In tempus odio sit amet odio pellentesque sollicitudin. Vestibulum pretium metus a enim semper blandit. Maecenas sollicitudin ornare libero eu pharetra. Etiam metus risus, posuere sit amet volutpat vitae, placerat sed ligula.

\r\n
    \r\n
  • Morbi ipsum mi, interdum sed elementum ac, sollicitudin vel urna.
  • \r\n
  • Vestibulum sed congue magna.
  • \r\n
  • Integer velit diam, porttitor tempor luctus at, adipiscing eget nulla.
  • \r\n
\r\n

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla faucibus, est eget ullamcorper condimentum, enim nisl luctus sem, sit amet mollis orci eros eget quam.

\r\n

Donec et augue libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Aliquam dictum consequat porta.Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\r\n

Vivamus iaculis rutrum orci, id hendrerit sapien imperdiet id. Quisque eu nibh enim, ac aliquam nunc. Integer ultricies cursus mattis. Donec tristique est ac massa vehicula non sollicitudin odio blandit. Nam lacus purus, vulputate et viverra ac, mattis congue nunc. Donec aliquam sagittis porttitor. Aenean sit amet orci ac neque posuere tristique.
\r\nMorbi mollis, nisi eu varius laoreet, quam lacus venenatis mauris, non commodo lectus eros vitae ipsum. Nam non neque nunc, tincidunt molestie tortor. Nulla tristique dolor at nisi tempor pretium. Phasellus non nisl nec mauris rhoncus iaculis.Cras vel orci sapien, vitae viverra diam.

\r\n

Morbi sodales enim ut neque sagittis pellentesque. Aliquam erat volutpat. Curabitur nisl libero, vehicula vel blandit vitae, pharetra eu nulla. Aliquam eu lectus eget metus condimentum bibendum. Nullam sapien nulla, consectetur vitae vestibulum in, cursus et nunc. Aliquam ipsum risus, tincidunt at sagittis vel, commodo non lectus. Nulla mollis fermentum nunc. Praesent interdum fringilla nisl.
\r\nCurabitur volutpat massa eu felis ultrices sodales. Donec rhoncus, diam vel interdum elementum, turpis neque volutpat orci, eu molestie magna dui id justo. Ut sodales fringilla ante, ullamcorper elementum lectus ullamcorper euismod

\r\n

. Vestibulum scelerisque ornare magna at egestas. Donec in tellus est. Nullam egestas tincidunt pretium. Nunc id diam id felis dapibus euismod. Sed feugiat lacinia eros, sed interdum nunc porttitor et. Mauris a justo sit amet turpis convallis rhoncus. Suspendisse tincidunt neque ac libero varius volutpat. Suspendisse quis ipsum leo.

\r\n', '', 'full_html'), -('node', 'blog', 0, 5, 5, 'und', 0, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum. Maecenas nec neque a justo tincidunt dictum.\r\n\r\nNulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.', '', 'full_html'), -('node', 'blog', 0, 6, 6, 'und', 0, 'Nulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.', '', 'full_html'), -('node', 'blog', 0, 7, 7, 'und', 0, 'Nulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.\r\n\r\nVivamus id ante neque, vel vulputate dui. Maecenas et dui justo. Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.', '', 'full_html'), -('node', 'page', 0, 8, 8, 'und', 0, '

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.

\r\n

Blockquote - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco...

\r\n

Header 2

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Linked Header 2

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Header 3

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Header 4

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Code snippet

\r\n

#header h1 a {
\r\ndisplay: block;
\r\nheight: 80px;
\r\nwidth: 300px;
\r\n}

\r\n

Drupal''s messages

\r\n
Sample status message. Page Typography has been updated. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede
\r\n
Sample error message. There is a security update available for your version of Drupal. To ensure the security of your server, you should update immediately! See the available updates page for more information.
\r\n
Sample warning message. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n

Paragraph With Links

\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.

\r\n

Ordered List

\r\n
  1. This is a sample Ordered List.
  2. \r\n
  3. Lorem ipsum dolor sit amet consectetuer.
  4. \r\n
  5. Condimentum quis.
  6. \r\n
  7. Congue Quisque augue elit dolor.\r\n
    1. Something goes here.
    2. \r\n
    3. And another here
    4. \r\n
    5. Then one more
    6. \r\n
  8. \r\n
  9. Congue Quisque augue elit dolor nibh.
  10. \r\n

Unordered List

\r\n
  • This is a sample Unordered List.
  • \r\n
  • Condimentum quis.
  • \r\n
  • Congue Quisque augue elit dolor.\r\n
    • Something goes here.
    • \r\n
    • And another here\r\n
      • Something here as well
      • \r\n
      • Something here as well
      • \r\n
      • Something here as well
      • \r\n
    • \r\n
    • Then one more
    • \r\n
  • \r\n
  • Nunc cursus sem et pretium sapien eget.
  • \r\n

Fieldset

\r\n

Account information

Table

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Header 1Header 2
row 1, cell 1row 1, cell 2
row 2, cell 1row 2, cell 2
row 3, cell 1row 3, cell 2
', '', 'full_html'), -('node', 'page', 0, 9, 9, 'und', 0, '

\r\n

\r\n
Two Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Two Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class="one_half"> Content here... </div>\r\n\r\n<!-- Second Column -->\r\n<div class="one_half last"> Content here... </div>\r\n
\r\n
\r\n

\r\n
\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class="one_third"> Content here... </div>\r\n\r\n<!-- Second Column -->\r\n<div class="one_third"> Content here... </div>\r\n\r\n<!-- Third Column -->\r\n<div class="one_third last"> Content here... </div>\r\n
\r\n
\r\n

\r\n
\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class="one_fourth"> Content here... </div>\r\n                      \r\n                      .\r\n                      .\r\n                      .\r\n\r\n<!-- Fourth Column -->\r\n<div class="one_fourth last"> Content here... </div>\r\n
\r\n
\r\n

\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.
\r\n


\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class="one_sixth"> Content here... </div>\r\n                      \r\n                      .\r\n                      .\r\n                      .\r\n\r\n<!-- Sixth Column -->\r\n<div class="one_sixth last"> Content here... </div>\r\n
\r\n
\r\n

', '', 'full_html'), -('node', 'page', 0, 10, 10, 'und', 0, '

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="ticklist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="crosslist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="starlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="exclamlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="addlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="blacklist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="bluelist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="starlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="deletelist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="errorlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="idealist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="keylist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="newlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="orangelist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="pinklist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="pluslist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="purplelist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="redlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="taglist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="vcardlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="yellowlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="greenlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

', '', 'full_html'), -('node', 'page', 0, 11, 11, 'und', 0, '
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="successbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="ideabox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="okbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="questionbox"> Text here ... </div>
\r\n\r\n
<div class="searchbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="eventbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="thumbsupbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="cancelbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="addbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="warningbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="emptybox"> Text here ... </div>
', '', 'full_html'), -('node', 'page', 0, 12, 12, 'und', 0, '\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n', '', 'php_code'), -('node', 'page', 0, 13, 13, 'und', 0, '\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n', '', 'php_code'); -INSERT INTO `field_data_body` (`entity_type`, `bundle`, `deleted`, `entity_id`, `revision_id`, `language`, `delta`, `body_value`, `body_summary`, `body_format`) VALUES -('node', 'page', 0, 14, 14, 'und', 0, '
\r\nInteger velit diam.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 15, 15, 'und', 0, '
\r\nVivamus ac odio dolor.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 16, 16, 'und', 0, '
\r\nNulla mollis fermentum nunc.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 17, 17, 'und', 0, '
\r\nBlackBerry Website Project.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 18, 18, 'und', 0, '
\r\nVestibulum ante ipsum primis.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 19, 19, 'und', 0, '
L
orem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
<div class="dropcapsimple">L</div>
\r\n\r\n

Aorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n
<span class="dropcapsquare dropcap grey">A</span>
\r\n\r\n

Borem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n
<span class="dropcapfancy dropcap blue">B</span>
\r\n\r\n

Error Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class="simple-error">Text Here...</div>
\r\n\r\n

Success Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class="simple-success">Text Here...</div>
\r\n\r\n

Warning Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class="simple-notice">Text Here...</div>
\r\n\r\n

Info Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class="simple-info">Text Here...</div>
', '', 'full_html'), -('node', 'blog', 0, 20, 20, 'und', 0, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum.', '', 'filtered_html'); - --- -------------------------------------------------------- +LOCK TABLES `field_data_body` WRITE; +/*!40000 ALTER TABLE `field_data_body` DISABLE KEYS */; +INSERT INTO `field_data_body` VALUES ('node','page',0,1,1,'und',0,'\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend. Aenean aucibus ultrices mi et tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.Proin in tempor enim.Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.Vestibulum eu tincidunt mauris.

\r\n

In tempus odio sit amet odio pellentesque sollicitudin.

\r\n

Vestibulum pretium metus a enim semper blandit. Maecenas sollicitudin ornare libero eu pharetra. Etiam metus risus, posuere sit amet volutpat vitae, placerat sed ligula. Morbi ipsum mi, interdum sed lementum ac, sollicitudin vel urna. Vestibulum sed congue magna. Integer velit diam, porttitor tempor luctus at, adipiscing eget nulla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla faucibus, est eget ullamcorper condimentum, enim nisl luctus sem, sit amet mollis orci eros eget quam. Donec et augue libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam dictum consequat porta.

\r\n
    \r\n
  • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  • \r\n
  • Vivamus iaculis rutrum orci, id hendrerit sapien imperdiet id.
  • \r\n
\r\n

\"\"Quisque eu nibh enim, ac aliquam nunc. Integer ultricies cursus mattis. Donec tristique est ac massa vehicula non sollicitudin odio blandit. Nam lacus purus, vulputate et viverra ac, mattis congue nunc. Donec aliquam sagittis porttitor. Aenean sit amet orci ac neque posuere tristique. Morbi mollis, nisi eu varius laoreet, quam lacus venenatis mauris, non commodo lectus eros vitae ipsum. Nam non neque nunc, tincidunt molestie tortor. Nulla tristique dolor at nisi tempor pretium. Phasellus non nisl nec mauris rhoncus iaculis.

\r\n

Cras vel orci sapien, vitae viverra diam. Morbi sodales enim ut neque sagittis pellentesque. Aliquam erat volutpat. Curabitur nisl libero, vehicula vel blandit vitae, pharetra eu nulla. Aliquam eu lectus eget metus condimentum bibendum. Nullam sapien nulla, consectetur vitae vestibulum in, cursus et nunc. Aliquam ipsum risus, tincidunt at sagittis vel, commodo non lectus. Nulla mollis fermentum nunc. Praesent interdum fringilla nisl.

\r\n

Curabitur volutpat massa eu felis ultrices sodales. Donec rhoncus, diamvel interdum elementum, turpis neque volutpat orci, eu molestie magna duiid justo. Ut sodales fringilla ante, ullamcorper elementum lectus ullamcorper euismod. Vestibulum scelerisque ornare magna at egestas. Donec in tellus est. Nullam egestas tincidunt pretium. Nunc id diam id felis dapibus euismod. Sed feugiat lacinia eros, sed interdum nunc porttitor et. Mauris a justo sit amet turpis convallis rhoncus. Suspendisse tincidunt neque ac libero varius volutpat. Suspendisse quis ipsum leo.

\r\n
\r\n\r\n\r\n','','php_code'),('node','article',0,2,2,'und',0,'This is an example page. It’s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:','','full_html'),('node','blog',0,3,3,'und',0,'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum. Maecenas nec neque a justo tincidunt dictum.\r\n\r\nNulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.\r\n\r\nVivamus id ante neque, vel vulputate dui. Maecenas et dui justo. Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.\r\n\r\nNullam mattis, risus id cursus consequat, ipsum mauris tincidunt purus, quis placerat nulla nunc at diam. Proin ut nulla quis augue mollis sodales. Curabitur nec urna erat. Donec eget nulla eget quam dapibus varius commodo malesuada urna. Aenean sodales rhoncus sagittis. Mauris eget iaculis felis. In hac habitasse platea dictumst.','','full_html'),('node','blog',0,4,4,'und',0,'

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend. Aenean faucibus ultrices mi et tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.Proin in tempor enim. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

\r\n

Vestibulum eu tincidunt mauris. In tempus odio sit amet odio pellentesque sollicitudin. Vestibulum pretium metus a enim semper blandit. Maecenas sollicitudin ornare libero eu pharetra. Etiam metus risus, posuere sit amet volutpat vitae, placerat sed ligula.

\r\n
    \r\n
  • Morbi ipsum mi, interdum sed elementum ac, sollicitudin vel urna.
  • \r\n
  • Vestibulum sed congue magna.
  • \r\n
  • Integer velit diam, porttitor tempor luctus at, adipiscing eget nulla.
  • \r\n
\r\n

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla faucibus, est eget ullamcorper condimentum, enim nisl luctus sem, sit amet mollis orci eros eget quam.

\r\n

Donec et augue libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Aliquam dictum consequat porta.Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\r\n

Vivamus iaculis rutrum orci, id hendrerit sapien imperdiet id. Quisque eu nibh enim, ac aliquam nunc. Integer ultricies cursus mattis. Donec tristique est ac massa vehicula non sollicitudin odio blandit. Nam lacus purus, vulputate et viverra ac, mattis congue nunc. Donec aliquam sagittis porttitor. Aenean sit amet orci ac neque posuere tristique.
\r\nMorbi mollis, nisi eu varius laoreet, quam lacus venenatis mauris, non commodo lectus eros vitae ipsum. Nam non neque nunc, tincidunt molestie tortor. Nulla tristique dolor at nisi tempor pretium. Phasellus non nisl nec mauris rhoncus iaculis.Cras vel orci sapien, vitae viverra diam.

\r\n

Morbi sodales enim ut neque sagittis pellentesque. Aliquam erat volutpat. Curabitur nisl libero, vehicula vel blandit vitae, pharetra eu nulla. Aliquam eu lectus eget metus condimentum bibendum. Nullam sapien nulla, consectetur vitae vestibulum in, cursus et nunc. Aliquam ipsum risus, tincidunt at sagittis vel, commodo non lectus. Nulla mollis fermentum nunc. Praesent interdum fringilla nisl.
\r\nCurabitur volutpat massa eu felis ultrices sodales. Donec rhoncus, diam vel interdum elementum, turpis neque volutpat orci, eu molestie magna dui id justo. Ut sodales fringilla ante, ullamcorper elementum lectus ullamcorper euismod

\r\n

. Vestibulum scelerisque ornare magna at egestas. Donec in tellus est. Nullam egestas tincidunt pretium. Nunc id diam id felis dapibus euismod. Sed feugiat lacinia eros, sed interdum nunc porttitor et. Mauris a justo sit amet turpis convallis rhoncus. Suspendisse tincidunt neque ac libero varius volutpat. Suspendisse quis ipsum leo.

\r\n','','full_html'),('node','blog',0,5,5,'und',0,'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum. Maecenas nec neque a justo tincidunt dictum.\r\n\r\nNulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.','','full_html'),('node','blog',0,6,6,'und',0,'Nulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.','','full_html'),('node','blog',0,7,7,'und',0,'Nulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.\r\n\r\nVivamus id ante neque, vel vulputate dui. Maecenas et dui justo. Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.','','full_html'),('node','page',0,8,8,'und',0,'

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.

\r\n

Blockquote - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco...

\r\n

Header 2

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Linked Header 2

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Header 3

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Header 4

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Code snippet

\r\n

#header h1 a {
\r\ndisplay: block;
\r\nheight: 80px;
\r\nwidth: 300px;
\r\n}

\r\n

Drupal\'s messages

\r\n
Sample status message. Page Typography has been updated. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede
\r\n
Sample error message. There is a security update available for your version of Drupal. To ensure the security of your server, you should update immediately! See the available updates page for more information.
\r\n
Sample warning message. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n

Paragraph With Links

\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.

\r\n

Ordered List

\r\n
  1. This is a sample Ordered List.
  2. \r\n
  3. Lorem ipsum dolor sit amet consectetuer.
  4. \r\n
  5. Condimentum quis.
  6. \r\n
  7. Congue Quisque augue elit dolor.\r\n
    1. Something goes here.
    2. \r\n
    3. And another here
    4. \r\n
    5. Then one more
    6. \r\n
  8. \r\n
  9. Congue Quisque augue elit dolor nibh.
  10. \r\n

Unordered List

\r\n
  • This is a sample Unordered List.
  • \r\n
  • Condimentum quis.
  • \r\n
  • Congue Quisque augue elit dolor.\r\n
    • Something goes here.
    • \r\n
    • And another here\r\n
      • Something here as well
      • \r\n
      • Something here as well
      • \r\n
      • Something here as well
      • \r\n
    • \r\n
    • Then one more
    • \r\n
  • \r\n
  • Nunc cursus sem et pretium sapien eget.
  • \r\n

Fieldset

\r\n

Account information

Table

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Header 1Header 2
row 1, cell 1row 1, cell 2
row 2, cell 1row 2, cell 2
row 3, cell 1row 3, cell 2
','','full_html'),('node','page',0,9,9,'und',0,'

\r\n

\r\n
Two Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Two Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class=\"one_half\"> Content here... </div>\r\n\r\n<!-- Second Column -->\r\n<div class=\"one_half last\"> Content here... </div>\r\n
\r\n
\r\n

\r\n
\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class=\"one_third\"> Content here... </div>\r\n\r\n<!-- Second Column -->\r\n<div class=\"one_third\"> Content here... </div>\r\n\r\n<!-- Third Column -->\r\n<div class=\"one_third last\"> Content here... </div>\r\n
\r\n
\r\n

\r\n
\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class=\"one_fourth\"> Content here... </div>\r\n                      \r\n                      .\r\n                      .\r\n                      .\r\n\r\n<!-- Fourth Column -->\r\n<div class=\"one_fourth last\"> Content here... </div>\r\n
\r\n
\r\n

\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.
\r\n


\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class=\"one_sixth\"> Content here... </div>\r\n                      \r\n                      .\r\n                      .\r\n                      .\r\n\r\n<!-- Sixth Column -->\r\n<div class=\"one_sixth last\"> Content here... </div>\r\n
\r\n
\r\n

','','full_html'),('node','page',0,10,10,'und',0,'

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"ticklist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"crosslist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"starlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"exclamlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"addlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"blacklist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"bluelist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"starlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"deletelist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"errorlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"idealist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"keylist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"newlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"orangelist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"pinklist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"pluslist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"purplelist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"redlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"taglist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"vcardlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"yellowlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"greenlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

','','full_html'),('node','page',0,11,11,'und',0,'
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"successbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"ideabox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"okbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"questionbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"searchbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"eventbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"thumbsupbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"cancelbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"addbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"warningbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"emptybox\"> Text here ... </div>
','','full_html'),('node','page',0,12,12,'und',0,'\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n','','php_code'),('node','page',0,13,13,'und',0,'\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n','','php_code'),('node','page',0,14,14,'und',0,'
\r\n/images/sampleimages/portfolio-img-1.jpg\" alt=\"Integer velit diam.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,15,15,'und',0,'
\r\n/images/sampleimages/portfolio-img-2.jpg\" alt=\"Vivamus ac odio dolor.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,16,16,'und',0,'
\r\n/images/sampleimages/portfolio-img-3.jpg\" alt=\"Nulla mollis fermentum nunc.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,17,17,'und',0,'
\r\n/images/sampleimages/portfolio-img-4.jpg\" alt=\"BlackBerry Website Project.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,18,18,'und',0,'
\r\n/images/sampleimages/portfolio-img-5.jpg\" alt=\"Vestibulum ante ipsum primis.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,19,19,'und',0,'
L
orem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
<div class=\"dropcapsimple\">L</div>
\r\n\r\n

Aorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n
<span class=\"dropcapsquare dropcap grey\">A</span>
\r\n\r\n

Borem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n
<span class=\"dropcapfancy dropcap blue\">B</span>
\r\n\r\n

Error Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class=\"simple-error\">Text Here...</div>
\r\n\r\n

Success Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class=\"simple-success\">Text Here...</div>
\r\n\r\n

Warning Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class=\"simple-notice\">Text Here...</div>
\r\n\r\n

Info Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class=\"simple-info\">Text Here...</div>
','','full_html'),('node','blog',0,20,20,'und',0,'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum.','','filtered_html'); +/*!40000 ALTER TABLE `field_data_body` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_data_comment_body` +-- Table structure for table `field_data_comment_body` -- -CREATE TABLE IF NOT EXISTS `field_data_comment_body` ( +DROP TABLE IF EXISTS `field_data_comment_body`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_data_comment_body` ( `entity_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'The entity type this data is attached to', `bundle` varchar(128) NOT NULL DEFAULT '' COMMENT 'The field instance bundle to which this row belongs, used when deleting a field instance', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'A boolean indicating whether this data item has been deleted', @@ -850,26 +844,26 @@ CREATE TABLE IF NOT EXISTS `field_data_comment_body` ( KEY `language` (`language`), KEY `comment_body_format` (`comment_body_format`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Data storage for field 1 (comment_body)'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `field_data_comment_body` +-- Dumping data for table `field_data_comment_body` -- -INSERT INTO `field_data_comment_body` (`entity_type`, `bundle`, `deleted`, `entity_id`, `revision_id`, `language`, `delta`, `comment_body_value`, `comment_body_format`) VALUES -('comment', 'comment_node_blog', 0, 1, 1, 'und', 0, 'Fbortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare.', 'filtered_html'), -('comment', 'comment_node_blog', 0, 2, 2, 'und', 0, 'Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus', 'full_html'), -('comment', 'comment_node_blog', 0, 3, 3, 'und', 0, 'test reply', 'filtered_html'), -('comment', 'comment_node_blog', 0, 4, 4, 'und', 0, 'test comment', 'filtered_html'), -('comment', 'comment_node_blog', 0, 5, 5, 'und', 0, 'Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam.', 'filtered_html'), -('comment', 'comment_node_blog', 0, 6, 6, 'und', 0, 'Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi.', 'filtered_html'); - --- -------------------------------------------------------- +LOCK TABLES `field_data_comment_body` WRITE; +/*!40000 ALTER TABLE `field_data_comment_body` DISABLE KEYS */; +INSERT INTO `field_data_comment_body` VALUES ('comment','comment_node_blog',0,1,1,'und',0,'Fbortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare.','filtered_html'),('comment','comment_node_blog',0,2,2,'und',0,'Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus','full_html'),('comment','comment_node_blog',0,3,3,'und',0,'test reply','filtered_html'),('comment','comment_node_blog',0,4,4,'und',0,'test comment','filtered_html'),('comment','comment_node_blog',0,5,5,'und',0,'Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam.','filtered_html'),('comment','comment_node_blog',0,6,6,'und',0,'Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi.','filtered_html'); +/*!40000 ALTER TABLE `field_data_comment_body` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_data_field_image` +-- Table structure for table `field_data_field_image` -- -CREATE TABLE IF NOT EXISTS `field_data_field_image` ( +DROP TABLE IF EXISTS `field_data_field_image`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_data_field_image` ( `entity_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'The entity type this data is attached to', `bundle` varchar(128) NOT NULL DEFAULT '' COMMENT 'The field instance bundle to which this row belongs, used when deleting a field instance', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'A boolean indicating whether this data item has been deleted', @@ -891,14 +885,25 @@ CREATE TABLE IF NOT EXISTS `field_data_field_image` ( KEY `language` (`language`), KEY `field_image_fid` (`field_image_fid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Data storage for field 4 (field_image)'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `field_data_field_image` +-- + +LOCK TABLES `field_data_field_image` WRITE; +/*!40000 ALTER TABLE `field_data_field_image` DISABLE KEYS */; +/*!40000 ALTER TABLE `field_data_field_image` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_data_field_tags` +-- Table structure for table `field_data_field_tags` -- -CREATE TABLE IF NOT EXISTS `field_data_field_tags` ( +DROP TABLE IF EXISTS `field_data_field_tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_data_field_tags` ( `entity_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'The entity type this data is attached to', `bundle` varchar(128) NOT NULL DEFAULT '' COMMENT 'The field instance bundle to which this row belongs, used when deleting a field instance', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'A boolean indicating whether this data item has been deleted', @@ -916,27 +921,26 @@ CREATE TABLE IF NOT EXISTS `field_data_field_tags` ( KEY `language` (`language`), KEY `field_tags_tid` (`field_tags_tid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Data storage for field 3 (field_tags)'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `field_data_field_tags` +-- Dumping data for table `field_data_field_tags` -- -INSERT INTO `field_data_field_tags` (`entity_type`, `bundle`, `deleted`, `entity_id`, `revision_id`, `language`, `delta`, `field_tags_tid`) VALUES -('node', 'article', 0, 2, 2, 'und', 0, 4), -('node', 'blog', 0, 3, 3, 'und', 0, 6), -('node', 'blog', 0, 4, 4, 'und', 0, 4), -('node', 'blog', 0, 5, 5, 'und', 0, 6), -('node', 'blog', 0, 6, 6, 'und', 0, 5), -('node', 'blog', 0, 7, 7, 'und', 0, 4), -('node', 'blog', 0, 20, 20, 'und', 0, 5); - --- -------------------------------------------------------- +LOCK TABLES `field_data_field_tags` WRITE; +/*!40000 ALTER TABLE `field_data_field_tags` DISABLE KEYS */; +INSERT INTO `field_data_field_tags` VALUES ('node','article',0,2,2,'und',0,4),('node','blog',0,3,3,'und',0,6),('node','blog',0,4,4,'und',0,4),('node','blog',0,5,5,'und',0,6),('node','blog',0,6,6,'und',0,5),('node','blog',0,7,7,'und',0,4),('node','blog',0,20,20,'und',0,5); +/*!40000 ALTER TABLE `field_data_field_tags` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_revision_body` +-- Table structure for table `field_revision_body` -- -CREATE TABLE IF NOT EXISTS `field_revision_body` ( +DROP TABLE IF EXISTS `field_revision_body`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_revision_body` ( `entity_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'The entity type this data is attached to', `bundle` varchar(128) NOT NULL DEFAULT '' COMMENT 'The field instance bundle to which this row belongs, used when deleting a field instance', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'A boolean indicating whether this data item has been deleted', @@ -956,41 +960,26 @@ CREATE TABLE IF NOT EXISTS `field_revision_body` ( KEY `language` (`language`), KEY `body_format` (`body_format`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Revision archive storage for field 2 (body)'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `field_revision_body` +-- Dumping data for table `field_revision_body` -- -INSERT INTO `field_revision_body` (`entity_type`, `bundle`, `deleted`, `entity_id`, `revision_id`, `language`, `delta`, `body_value`, `body_summary`, `body_format`) VALUES -('node', 'page', 0, 1, 1, 'und', 0, '\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend. Aenean aucibus ultrices mi et tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.Proin in tempor enim.Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.Vestibulum eu tincidunt mauris.

\r\n

In tempus odio sit amet odio pellentesque sollicitudin.

\r\n

Vestibulum pretium metus a enim semper blandit. Maecenas sollicitudin ornare libero eu pharetra. Etiam metus risus, posuere sit amet volutpat vitae, placerat sed ligula. Morbi ipsum mi, interdum sed lementum ac, sollicitudin vel urna. Vestibulum sed congue magna. Integer velit diam, porttitor tempor luctus at, adipiscing eget nulla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla faucibus, est eget ullamcorper condimentum, enim nisl luctus sem, sit amet mollis orci eros eget quam. Donec et augue libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam dictum consequat porta.

\r\n
    \r\n
  • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  • \r\n
  • Vivamus iaculis rutrum orci, id hendrerit sapien imperdiet id.
  • \r\n
\r\n

Quisque eu nibh enim, ac aliquam nunc. Integer ultricies cursus mattis. Donec tristique est ac massa vehicula non sollicitudin odio blandit. Nam lacus purus, vulputate et viverra ac, mattis congue nunc. Donec aliquam sagittis porttitor. Aenean sit amet orci ac neque posuere tristique. Morbi mollis, nisi eu varius laoreet, quam lacus venenatis mauris, non commodo lectus eros vitae ipsum. Nam non neque nunc, tincidunt molestie tortor. Nulla tristique dolor at nisi tempor pretium. Phasellus non nisl nec mauris rhoncus iaculis.

\r\n

Cras vel orci sapien, vitae viverra diam. Morbi sodales enim ut neque sagittis pellentesque. Aliquam erat volutpat. Curabitur nisl libero, vehicula vel blandit vitae, pharetra eu nulla. Aliquam eu lectus eget metus condimentum bibendum. Nullam sapien nulla, consectetur vitae vestibulum in, cursus et nunc. Aliquam ipsum risus, tincidunt at sagittis vel, commodo non lectus. Nulla mollis fermentum nunc. Praesent interdum fringilla nisl.

\r\n

Curabitur volutpat massa eu felis ultrices sodales. Donec rhoncus, diamvel interdum elementum, turpis neque volutpat orci, eu molestie magna duiid justo. Ut sodales fringilla ante, ullamcorper elementum lectus ullamcorper euismod. Vestibulum scelerisque ornare magna at egestas. Donec in tellus est. Nullam egestas tincidunt pretium. Nunc id diam id felis dapibus euismod. Sed feugiat lacinia eros, sed interdum nunc porttitor et. Mauris a justo sit amet turpis convallis rhoncus. Suspendisse tincidunt neque ac libero varius volutpat. Suspendisse quis ipsum leo.

\r\n
\r\n\r\n\r\n', '', 'php_code'), -('node', 'article', 0, 2, 2, 'und', 0, 'This is an example page. It’s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:', '', 'full_html'), -('node', 'blog', 0, 3, 3, 'und', 0, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum. Maecenas nec neque a justo tincidunt dictum.\r\n\r\nNulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.\r\n\r\nVivamus id ante neque, vel vulputate dui. Maecenas et dui justo. Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.\r\n\r\nNullam mattis, risus id cursus consequat, ipsum mauris tincidunt purus, quis placerat nulla nunc at diam. Proin ut nulla quis augue mollis sodales. Curabitur nec urna erat. Donec eget nulla eget quam dapibus varius commodo malesuada urna. Aenean sodales rhoncus sagittis. Mauris eget iaculis felis. In hac habitasse platea dictumst.', '', 'full_html'), -('node', 'blog', 0, 4, 4, 'und', 0, '

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend. Aenean faucibus ultrices mi et tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.Proin in tempor enim. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

\r\n

Vestibulum eu tincidunt mauris. In tempus odio sit amet odio pellentesque sollicitudin. Vestibulum pretium metus a enim semper blandit. Maecenas sollicitudin ornare libero eu pharetra. Etiam metus risus, posuere sit amet volutpat vitae, placerat sed ligula.

\r\n
    \r\n
  • Morbi ipsum mi, interdum sed elementum ac, sollicitudin vel urna.
  • \r\n
  • Vestibulum sed congue magna.
  • \r\n
  • Integer velit diam, porttitor tempor luctus at, adipiscing eget nulla.
  • \r\n
\r\n

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla faucibus, est eget ullamcorper condimentum, enim nisl luctus sem, sit amet mollis orci eros eget quam.

\r\n

Donec et augue libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Aliquam dictum consequat porta.Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\r\n

Vivamus iaculis rutrum orci, id hendrerit sapien imperdiet id. Quisque eu nibh enim, ac aliquam nunc. Integer ultricies cursus mattis. Donec tristique est ac massa vehicula non sollicitudin odio blandit. Nam lacus purus, vulputate et viverra ac, mattis congue nunc. Donec aliquam sagittis porttitor. Aenean sit amet orci ac neque posuere tristique.
\r\nMorbi mollis, nisi eu varius laoreet, quam lacus venenatis mauris, non commodo lectus eros vitae ipsum. Nam non neque nunc, tincidunt molestie tortor. Nulla tristique dolor at nisi tempor pretium. Phasellus non nisl nec mauris rhoncus iaculis.Cras vel orci sapien, vitae viverra diam.

\r\n

Morbi sodales enim ut neque sagittis pellentesque. Aliquam erat volutpat. Curabitur nisl libero, vehicula vel blandit vitae, pharetra eu nulla. Aliquam eu lectus eget metus condimentum bibendum. Nullam sapien nulla, consectetur vitae vestibulum in, cursus et nunc. Aliquam ipsum risus, tincidunt at sagittis vel, commodo non lectus. Nulla mollis fermentum nunc. Praesent interdum fringilla nisl.
\r\nCurabitur volutpat massa eu felis ultrices sodales. Donec rhoncus, diam vel interdum elementum, turpis neque volutpat orci, eu molestie magna dui id justo. Ut sodales fringilla ante, ullamcorper elementum lectus ullamcorper euismod

\r\n

. Vestibulum scelerisque ornare magna at egestas. Donec in tellus est. Nullam egestas tincidunt pretium. Nunc id diam id felis dapibus euismod. Sed feugiat lacinia eros, sed interdum nunc porttitor et. Mauris a justo sit amet turpis convallis rhoncus. Suspendisse tincidunt neque ac libero varius volutpat. Suspendisse quis ipsum leo.

\r\n', '', 'full_html'), -('node', 'blog', 0, 5, 5, 'und', 0, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum. Maecenas nec neque a justo tincidunt dictum.\r\n\r\nNulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.', '', 'full_html'), -('node', 'blog', 0, 6, 6, 'und', 0, 'Nulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.', '', 'full_html'), -('node', 'blog', 0, 7, 7, 'und', 0, 'Nulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.\r\n\r\nVivamus id ante neque, vel vulputate dui. Maecenas et dui justo. Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.', '', 'full_html'), -('node', 'page', 0, 8, 8, 'und', 0, '

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.

\r\n

Blockquote - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco...

\r\n

Header 2

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Linked Header 2

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Header 3

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Header 4

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Code snippet

\r\n

#header h1 a {
\r\ndisplay: block;
\r\nheight: 80px;
\r\nwidth: 300px;
\r\n}

\r\n

Drupal''s messages

\r\n
Sample status message. Page Typography has been updated. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede
\r\n
Sample error message. There is a security update available for your version of Drupal. To ensure the security of your server, you should update immediately! See the available updates page for more information.
\r\n
Sample warning message. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n

Paragraph With Links

\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.

\r\n

Ordered List

\r\n
  1. This is a sample Ordered List.
  2. \r\n
  3. Lorem ipsum dolor sit amet consectetuer.
  4. \r\n
  5. Condimentum quis.
  6. \r\n
  7. Congue Quisque augue elit dolor.\r\n
    1. Something goes here.
    2. \r\n
    3. And another here
    4. \r\n
    5. Then one more
    6. \r\n
  8. \r\n
  9. Congue Quisque augue elit dolor nibh.
  10. \r\n

Unordered List

\r\n
  • This is a sample Unordered List.
  • \r\n
  • Condimentum quis.
  • \r\n
  • Congue Quisque augue elit dolor.\r\n
    • Something goes here.
    • \r\n
    • And another here\r\n
      • Something here as well
      • \r\n
      • Something here as well
      • \r\n
      • Something here as well
      • \r\n
    • \r\n
    • Then one more
    • \r\n
  • \r\n
  • Nunc cursus sem et pretium sapien eget.
  • \r\n

Fieldset

\r\n

Account information

Table

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Header 1Header 2
row 1, cell 1row 1, cell 2
row 2, cell 1row 2, cell 2
row 3, cell 1row 3, cell 2
', '', 'full_html'), -('node', 'page', 0, 9, 9, 'und', 0, '

\r\n

\r\n
Two Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Two Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class="one_half"> Content here... </div>\r\n\r\n<!-- Second Column -->\r\n<div class="one_half last"> Content here... </div>\r\n
\r\n
\r\n

\r\n
\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class="one_third"> Content here... </div>\r\n\r\n<!-- Second Column -->\r\n<div class="one_third"> Content here... </div>\r\n\r\n<!-- Third Column -->\r\n<div class="one_third last"> Content here... </div>\r\n
\r\n
\r\n

\r\n
\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class="one_fourth"> Content here... </div>\r\n                      \r\n                      .\r\n                      .\r\n                      .\r\n\r\n<!-- Fourth Column -->\r\n<div class="one_fourth last"> Content here... </div>\r\n
\r\n
\r\n

\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.
\r\n


\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class="one_sixth"> Content here... </div>\r\n                      \r\n                      .\r\n                      .\r\n                      .\r\n\r\n<!-- Sixth Column -->\r\n<div class="one_sixth last"> Content here... </div>\r\n
\r\n
\r\n

', '', 'full_html'), -('node', 'page', 0, 10, 10, 'und', 0, '

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="ticklist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="crosslist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="starlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="exclamlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="addlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="blacklist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="bluelist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="starlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="deletelist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="errorlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="idealist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="keylist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="newlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="orangelist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="pinklist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="pluslist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="purplelist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="redlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="taglist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="vcardlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="yellowlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class="greenlist"> List Here... </div>\r\n
\r\n
\r\n
\r\n

', '', 'full_html'), -('node', 'page', 0, 11, 11, 'und', 0, '
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="successbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="ideabox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="okbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="questionbox"> Text here ... </div>
\r\n\r\n
<div class="searchbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="eventbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="thumbsupbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="cancelbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="addbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="warningbox"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class="emptybox"> Text here ... </div>
', '', 'full_html'), -('node', 'page', 0, 12, 12, 'und', 0, '\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n', '', 'php_code'), -('node', 'page', 0, 13, 13, 'und', 0, '\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n', '', 'php_code'); -INSERT INTO `field_revision_body` (`entity_type`, `bundle`, `deleted`, `entity_id`, `revision_id`, `language`, `delta`, `body_value`, `body_summary`, `body_format`) VALUES -('node', 'page', 0, 14, 14, 'und', 0, '
\r\nInteger velit diam.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 15, 15, 'und', 0, '
\r\nVivamus ac odio dolor.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 16, 16, 'und', 0, '
\r\nNulla mollis fermentum nunc.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 17, 17, 'und', 0, '
\r\nBlackBerry Website Project.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 18, 18, 'und', 0, '
\r\nVestibulum ante ipsum primis.\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

', '', 'php_code'), -('node', 'page', 0, 19, 19, 'und', 0, '
L
orem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
<div class="dropcapsimple">L</div>
\r\n\r\n

Aorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n
<span class="dropcapsquare dropcap grey">A</span>
\r\n\r\n

Borem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n
<span class="dropcapfancy dropcap blue">B</span>
\r\n\r\n

Error Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class="simple-error">Text Here...</div>
\r\n\r\n

Success Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class="simple-success">Text Here...</div>
\r\n\r\n

Warning Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class="simple-notice">Text Here...</div>
\r\n\r\n

Info Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class="simple-info">Text Here...</div>
', '', 'full_html'), -('node', 'blog', 0, 20, 20, 'und', 0, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum.', '', 'filtered_html'); - --- -------------------------------------------------------- +LOCK TABLES `field_revision_body` WRITE; +/*!40000 ALTER TABLE `field_revision_body` DISABLE KEYS */; +INSERT INTO `field_revision_body` VALUES ('node','page',0,1,1,'und',0,'\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend. Aenean aucibus ultrices mi et tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.Proin in tempor enim.Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.Vestibulum eu tincidunt mauris.

\r\n

In tempus odio sit amet odio pellentesque sollicitudin.

\r\n

Vestibulum pretium metus a enim semper blandit. Maecenas sollicitudin ornare libero eu pharetra. Etiam metus risus, posuere sit amet volutpat vitae, placerat sed ligula. Morbi ipsum mi, interdum sed lementum ac, sollicitudin vel urna. Vestibulum sed congue magna. Integer velit diam, porttitor tempor luctus at, adipiscing eget nulla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla faucibus, est eget ullamcorper condimentum, enim nisl luctus sem, sit amet mollis orci eros eget quam. Donec et augue libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam dictum consequat porta.

\r\n
    \r\n
  • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  • \r\n
  • Vivamus iaculis rutrum orci, id hendrerit sapien imperdiet id.
  • \r\n
\r\n

\"\"Quisque eu nibh enim, ac aliquam nunc. Integer ultricies cursus mattis. Donec tristique est ac massa vehicula non sollicitudin odio blandit. Nam lacus purus, vulputate et viverra ac, mattis congue nunc. Donec aliquam sagittis porttitor. Aenean sit amet orci ac neque posuere tristique. Morbi mollis, nisi eu varius laoreet, quam lacus venenatis mauris, non commodo lectus eros vitae ipsum. Nam non neque nunc, tincidunt molestie tortor. Nulla tristique dolor at nisi tempor pretium. Phasellus non nisl nec mauris rhoncus iaculis.

\r\n

Cras vel orci sapien, vitae viverra diam. Morbi sodales enim ut neque sagittis pellentesque. Aliquam erat volutpat. Curabitur nisl libero, vehicula vel blandit vitae, pharetra eu nulla. Aliquam eu lectus eget metus condimentum bibendum. Nullam sapien nulla, consectetur vitae vestibulum in, cursus et nunc. Aliquam ipsum risus, tincidunt at sagittis vel, commodo non lectus. Nulla mollis fermentum nunc. Praesent interdum fringilla nisl.

\r\n

Curabitur volutpat massa eu felis ultrices sodales. Donec rhoncus, diamvel interdum elementum, turpis neque volutpat orci, eu molestie magna duiid justo. Ut sodales fringilla ante, ullamcorper elementum lectus ullamcorper euismod. Vestibulum scelerisque ornare magna at egestas. Donec in tellus est. Nullam egestas tincidunt pretium. Nunc id diam id felis dapibus euismod. Sed feugiat lacinia eros, sed interdum nunc porttitor et. Mauris a justo sit amet turpis convallis rhoncus. Suspendisse tincidunt neque ac libero varius volutpat. Suspendisse quis ipsum leo.

\r\n
\r\n\r\n\r\n','','php_code'),('node','article',0,2,2,'und',0,'This is an example page. It’s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:','','full_html'),('node','blog',0,3,3,'und',0,'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum. Maecenas nec neque a justo tincidunt dictum.\r\n\r\nNulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.\r\n\r\nVivamus id ante neque, vel vulputate dui. Maecenas et dui justo. Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.\r\n\r\nNullam mattis, risus id cursus consequat, ipsum mauris tincidunt purus, quis placerat nulla nunc at diam. Proin ut nulla quis augue mollis sodales. Curabitur nec urna erat. Donec eget nulla eget quam dapibus varius commodo malesuada urna. Aenean sodales rhoncus sagittis. Mauris eget iaculis felis. In hac habitasse platea dictumst.','','full_html'),('node','blog',0,4,4,'und',0,'

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin fermentum consequat eros, cursus fringilla odio rhoncus at. Aliquam pellentesque blandit urna nec pulvinar. Ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra. Praesent tincidunt magna enim. Morbi gravida mauris eget urna rhoncus blandit. Cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend. Aenean faucibus ultrices mi et tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.Proin in tempor enim. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

\r\n

Vestibulum eu tincidunt mauris. In tempus odio sit amet odio pellentesque sollicitudin. Vestibulum pretium metus a enim semper blandit. Maecenas sollicitudin ornare libero eu pharetra. Etiam metus risus, posuere sit amet volutpat vitae, placerat sed ligula.

\r\n
    \r\n
  • Morbi ipsum mi, interdum sed elementum ac, sollicitudin vel urna.
  • \r\n
  • Vestibulum sed congue magna.
  • \r\n
  • Integer velit diam, porttitor tempor luctus at, adipiscing eget nulla.
  • \r\n
\r\n

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla faucibus, est eget ullamcorper condimentum, enim nisl luctus sem, sit amet mollis orci eros eget quam.

\r\n

Donec et augue libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Aliquam dictum consequat porta.Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\r\n

Vivamus iaculis rutrum orci, id hendrerit sapien imperdiet id. Quisque eu nibh enim, ac aliquam nunc. Integer ultricies cursus mattis. Donec tristique est ac massa vehicula non sollicitudin odio blandit. Nam lacus purus, vulputate et viverra ac, mattis congue nunc. Donec aliquam sagittis porttitor. Aenean sit amet orci ac neque posuere tristique.
\r\nMorbi mollis, nisi eu varius laoreet, quam lacus venenatis mauris, non commodo lectus eros vitae ipsum. Nam non neque nunc, tincidunt molestie tortor. Nulla tristique dolor at nisi tempor pretium. Phasellus non nisl nec mauris rhoncus iaculis.Cras vel orci sapien, vitae viverra diam.

\r\n

Morbi sodales enim ut neque sagittis pellentesque. Aliquam erat volutpat. Curabitur nisl libero, vehicula vel blandit vitae, pharetra eu nulla. Aliquam eu lectus eget metus condimentum bibendum. Nullam sapien nulla, consectetur vitae vestibulum in, cursus et nunc. Aliquam ipsum risus, tincidunt at sagittis vel, commodo non lectus. Nulla mollis fermentum nunc. Praesent interdum fringilla nisl.
\r\nCurabitur volutpat massa eu felis ultrices sodales. Donec rhoncus, diam vel interdum elementum, turpis neque volutpat orci, eu molestie magna dui id justo. Ut sodales fringilla ante, ullamcorper elementum lectus ullamcorper euismod

\r\n

. Vestibulum scelerisque ornare magna at egestas. Donec in tellus est. Nullam egestas tincidunt pretium. Nunc id diam id felis dapibus euismod. Sed feugiat lacinia eros, sed interdum nunc porttitor et. Mauris a justo sit amet turpis convallis rhoncus. Suspendisse tincidunt neque ac libero varius volutpat. Suspendisse quis ipsum leo.

\r\n','','full_html'),('node','blog',0,5,5,'und',0,'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum. Maecenas nec neque a justo tincidunt dictum.\r\n\r\nNulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.','','full_html'),('node','blog',0,6,6,'und',0,'Nulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.','','full_html'),('node','blog',0,7,7,'und',0,'Nulla hendrerit vestibulum adipiscing. Donec fermentum odio et turpis vestibulum iaculis. Donec lacus ipsum, commodo et ullamcorper sed, fermentum eget est. Phasellus nisl lectus, hendrerit vitae pellentesque ac, interdum non justo. Sed rhoncus mollis porta. Vivamus nec tincidunt turpis. Donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis. Fusce orci velit, aliquam pellentesque commodo at, rhoncus non eros.\r\n\r\nIn egestas porta tortor sed imperdiet. Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus. Vivamus ac odio dolor. Nunc non lectus sapien. Quisque rutrum, ante vitae vestibulum eleifend, mauris leo feugiat neque, vitae tempor lacus ante porttitor sapien. Aliquam in sem nec elit sollicitudin ultrices egestas quis odio. Sed facilisis risus dignissim augue luctus pulvinar. Nullam consequat fringilla ullamcorper. Suspendisse potenti. Nulla lorem nisl, vehicula et blandit nec, imperdiet in elit.\r\n\r\nVivamus id ante neque, vel vulputate dui. Maecenas et dui justo. Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.','','full_html'),('node','page',0,8,8,'und',0,'

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.

\r\n

Blockquote - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco...

\r\n

Header 2

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Linked Header 2

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Header 3

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Header 4

\r\n

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n

Code snippet

\r\n

#header h1 a {
\r\ndisplay: block;
\r\nheight: 80px;
\r\nwidth: 300px;
\r\n}

\r\n

Drupal\'s messages

\r\n
Sample status message. Page Typography has been updated. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede
\r\n
Sample error message. There is a security update available for your version of Drupal. To ensure the security of your server, you should update immediately! See the available updates page for more information.
\r\n
Sample warning message. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n

Paragraph With Links

\r\n

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.

\r\n

Ordered List

\r\n
  1. This is a sample Ordered List.
  2. \r\n
  3. Lorem ipsum dolor sit amet consectetuer.
  4. \r\n
  5. Condimentum quis.
  6. \r\n
  7. Congue Quisque augue elit dolor.\r\n
    1. Something goes here.
    2. \r\n
    3. And another here
    4. \r\n
    5. Then one more
    6. \r\n
  8. \r\n
  9. Congue Quisque augue elit dolor nibh.
  10. \r\n

Unordered List

\r\n
  • This is a sample Unordered List.
  • \r\n
  • Condimentum quis.
  • \r\n
  • Congue Quisque augue elit dolor.\r\n
    • Something goes here.
    • \r\n
    • And another here\r\n
      • Something here as well
      • \r\n
      • Something here as well
      • \r\n
      • Something here as well
      • \r\n
    • \r\n
    • Then one more
    • \r\n
  • \r\n
  • Nunc cursus sem et pretium sapien eget.
  • \r\n

Fieldset

\r\n

Account information

Table

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Header 1Header 2
row 1, cell 1row 1, cell 2
row 2, cell 1row 2, cell 2
row 3, cell 1row 3, cell 2
','','full_html'),('node','page',0,9,9,'und',0,'

\r\n

\r\n
Two Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Two Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class=\"one_half\"> Content here... </div>\r\n\r\n<!-- Second Column -->\r\n<div class=\"one_half last\"> Content here... </div>\r\n
\r\n
\r\n

\r\n
\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Three Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class=\"one_third\"> Content here... </div>\r\n\r\n<!-- Second Column -->\r\n<div class=\"one_third\"> Content here... </div>\r\n\r\n<!-- Third Column -->\r\n<div class=\"one_third last\"> Content here... </div>\r\n
\r\n
\r\n

\r\n
\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Four Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class=\"one_fourth\"> Content here... </div>\r\n                      \r\n                      .\r\n                      .\r\n                      .\r\n\r\n<!-- Fourth Column -->\r\n<div class=\"one_fourth last\"> Content here... </div>\r\n
\r\n
\r\n

\r\n
TOP
\r\n

\r\n
\r\n

\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.
\r\n


\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n

\r\n
Six Column
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ac mi ut nisi dignissim hendrerit. Cras pharetra nibh lacinia nisi varius vestibulum.

\r\n
\r\n
\r\n<!-- First Column -->\r\n<div class=\"one_sixth\"> Content here... </div>\r\n                      \r\n                      .\r\n                      .\r\n                      .\r\n\r\n<!-- Sixth Column -->\r\n<div class=\"one_sixth last\"> Content here... </div>\r\n
\r\n
\r\n

','','full_html'),('node','page',0,10,10,'und',0,'

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"ticklist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"crosslist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"starlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"exclamlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"addlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"blacklist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"bluelist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"starlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"deletelist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"errorlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"idealist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"keylist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"newlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"orangelist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"pinklist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"pluslist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"purplelist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"redlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"taglist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"vcardlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"yellowlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • This is item one
  • \r\n
  • This is item two
  • \r\n
  • This is item three
  • \r\n
\r\n

\r\n
\r\n
\r\n<div class=\"greenlist\"> List Here... </div>\r\n
\r\n
\r\n
\r\n

','','full_html'),('node','page',0,11,11,'und',0,'
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"successbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"ideabox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"okbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"questionbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"searchbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"eventbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"thumbsupbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"cancelbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"addbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"warningbox\"> Text here ... </div>
\r\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\r\n
<div class=\"emptybox\"> Text here ... </div>
','','full_html'),('node','page',0,12,12,'und',0,'\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n','','php_code'),('node','page',0,13,13,'und',0,'\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n','','php_code'),('node','page',0,14,14,'und',0,'
\r\n/images/sampleimages/portfolio-img-1.jpg\" alt=\"Integer velit diam.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,15,15,'und',0,'
\r\n/images/sampleimages/portfolio-img-2.jpg\" alt=\"Vivamus ac odio dolor.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,16,16,'und',0,'
\r\n/images/sampleimages/portfolio-img-3.jpg\" alt=\"Nulla mollis fermentum nunc.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,17,17,'und',0,'
\r\n/images/sampleimages/portfolio-img-4.jpg\" alt=\"BlackBerry Website Project.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,18,18,'und',0,'
\r\n/images/sampleimages/portfolio-img-5.jpg\" alt=\"Vestibulum ante ipsum primis.\">\r\n
\r\n

Ut ultrices lobortis elit vel posuere. Quisque neque massa, interdum eu dapibus blandit, vehicula in lacus. Aenean ac dolor lectus. Suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum. Donec mollis suscipit justo, sed pulvinar diam rhoncus nec. Suspendisse ac eros elit, in ullamcorper quam. Nulla tincidunt molestie odio, et commodo risus facilisis ac.

','','php_code'),('node','page',0,19,19,'und',0,'
L
orem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
<div class=\"dropcapsimple\">L</div>
\r\n\r\n

Aorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n
<span class=\"dropcapsquare dropcap grey\">A</span>
\r\n\r\n

Borem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n
<span class=\"dropcapfancy dropcap blue\">B</span>
\r\n\r\n

Error Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class=\"simple-error\">Text Here...</div>
\r\n\r\n

Success Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class=\"simple-success\">Text Here...</div>
\r\n\r\n

Warning Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class=\"simple-notice\">Text Here...</div>
\r\n\r\n

Info Message

\r\n
\r\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
\r\n
<div class=\"simple-info\">Text Here...</div>
','','full_html'),('node','blog',0,20,20,'und',0,'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis accumsan scelerisque. Ut sed convallis purus. Fusce pretium molestie vestibulum. Aliquam erat volutpat. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Donec eros ante, cursus non malesuada at, sodales in dui. Sed faucibus dui in tellus tempor at venenatis nisi tempor. Cras fringilla auctor urna sit amet bibendum. Praesent egestas dignissim urna id vestibulum.','','filtered_html'); +/*!40000 ALTER TABLE `field_revision_body` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_revision_comment_body` +-- Table structure for table `field_revision_comment_body` -- -CREATE TABLE IF NOT EXISTS `field_revision_comment_body` ( +DROP TABLE IF EXISTS `field_revision_comment_body`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_revision_comment_body` ( `entity_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'The entity type this data is attached to', `bundle` varchar(128) NOT NULL DEFAULT '' COMMENT 'The field instance bundle to which this row belongs, used when deleting a field instance', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'A boolean indicating whether this data item has been deleted', @@ -1009,26 +998,26 @@ CREATE TABLE IF NOT EXISTS `field_revision_comment_body` ( KEY `language` (`language`), KEY `comment_body_format` (`comment_body_format`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Revision archive storage for field 1 (comment_body)'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `field_revision_comment_body` +-- Dumping data for table `field_revision_comment_body` -- -INSERT INTO `field_revision_comment_body` (`entity_type`, `bundle`, `deleted`, `entity_id`, `revision_id`, `language`, `delta`, `comment_body_value`, `comment_body_format`) VALUES -('comment', 'comment_node_blog', 0, 1, 1, 'und', 0, 'Fbortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare.', 'filtered_html'), -('comment', 'comment_node_blog', 0, 2, 2, 'und', 0, 'Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus', 'full_html'), -('comment', 'comment_node_blog', 0, 3, 3, 'und', 0, 'test reply', 'filtered_html'), -('comment', 'comment_node_blog', 0, 4, 4, 'und', 0, 'test comment', 'filtered_html'), -('comment', 'comment_node_blog', 0, 5, 5, 'und', 0, 'Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam.', 'filtered_html'), -('comment', 'comment_node_blog', 0, 6, 6, 'und', 0, 'Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi.', 'filtered_html'); - --- -------------------------------------------------------- +LOCK TABLES `field_revision_comment_body` WRITE; +/*!40000 ALTER TABLE `field_revision_comment_body` DISABLE KEYS */; +INSERT INTO `field_revision_comment_body` VALUES ('comment','comment_node_blog',0,1,1,'und',0,'Fbortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare.','filtered_html'),('comment','comment_node_blog',0,2,2,'und',0,'Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti. Morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus','full_html'),('comment','comment_node_blog',0,3,3,'und',0,'test reply','filtered_html'),('comment','comment_node_blog',0,4,4,'und',0,'test comment','filtered_html'),('comment','comment_node_blog',0,5,5,'und',0,'Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi. Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam.','filtered_html'),('comment','comment_node_blog',0,6,6,'und',0,'Cras posuere congue sem in rhoncus. Pellentesque at fermentum quam. Etiam tempor hendrerit venenatis. Aenean elementum mi id lorem blandit a eleifend mi ornare. Morbi ornare laoreet semper. Nulla facilisi.','filtered_html'); +/*!40000 ALTER TABLE `field_revision_comment_body` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_revision_field_image` +-- Table structure for table `field_revision_field_image` -- -CREATE TABLE IF NOT EXISTS `field_revision_field_image` ( +DROP TABLE IF EXISTS `field_revision_field_image`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_revision_field_image` ( `entity_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'The entity type this data is attached to', `bundle` varchar(128) NOT NULL DEFAULT '' COMMENT 'The field instance bundle to which this row belongs, used when deleting a field instance', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'A boolean indicating whether this data item has been deleted', @@ -1050,14 +1039,25 @@ CREATE TABLE IF NOT EXISTS `field_revision_field_image` ( KEY `language` (`language`), KEY `field_image_fid` (`field_image_fid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Revision archive storage for field 4 (field_image)'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `field_revision_field_image` +-- --- -------------------------------------------------------- +LOCK TABLES `field_revision_field_image` WRITE; +/*!40000 ALTER TABLE `field_revision_field_image` DISABLE KEYS */; +/*!40000 ALTER TABLE `field_revision_field_image` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `field_revision_field_tags` +-- Table structure for table `field_revision_field_tags` -- -CREATE TABLE IF NOT EXISTS `field_revision_field_tags` ( +DROP TABLE IF EXISTS `field_revision_field_tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `field_revision_field_tags` ( `entity_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'The entity type this data is attached to', `bundle` varchar(128) NOT NULL DEFAULT '' COMMENT 'The field instance bundle to which this row belongs, used when deleting a field instance', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'A boolean indicating whether this data item has been deleted', @@ -1075,33 +1075,32 @@ CREATE TABLE IF NOT EXISTS `field_revision_field_tags` ( KEY `language` (`language`), KEY `field_tags_tid` (`field_tags_tid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Revision archive storage for field 3 (field_tags)'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `field_revision_field_tags` +-- Dumping data for table `field_revision_field_tags` -- -INSERT INTO `field_revision_field_tags` (`entity_type`, `bundle`, `deleted`, `entity_id`, `revision_id`, `language`, `delta`, `field_tags_tid`) VALUES -('node', 'article', 0, 2, 2, 'und', 0, 4), -('node', 'blog', 0, 3, 3, 'und', 0, 6), -('node', 'blog', 0, 4, 4, 'und', 0, 4), -('node', 'blog', 0, 5, 5, 'und', 0, 6), -('node', 'blog', 0, 6, 6, 'und', 0, 5), -('node', 'blog', 0, 7, 7, 'und', 0, 4), -('node', 'blog', 0, 20, 20, 'und', 0, 5); - --- -------------------------------------------------------- +LOCK TABLES `field_revision_field_tags` WRITE; +/*!40000 ALTER TABLE `field_revision_field_tags` DISABLE KEYS */; +INSERT INTO `field_revision_field_tags` VALUES ('node','article',0,2,2,'und',0,4),('node','blog',0,3,3,'und',0,6),('node','blog',0,4,4,'und',0,4),('node','blog',0,5,5,'und',0,6),('node','blog',0,6,6,'und',0,5),('node','blog',0,7,7,'und',0,4),('node','blog',0,20,20,'und',0,5); +/*!40000 ALTER TABLE `field_revision_field_tags` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `file_managed` +-- Table structure for table `file_managed` -- -CREATE TABLE IF NOT EXISTS `file_managed` ( +DROP TABLE IF EXISTS `file_managed`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `file_managed` ( `fid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'File ID.', `uid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The users.uid of the user who is associated with the file.', `filename` varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of the file with no path components. This may differ from the basename of the URI if the file is renamed to avoid overwriting an existing file.', `uri` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'The URI to access the file (either local or remote).', `filemime` varchar(255) NOT NULL DEFAULT '' COMMENT 'The file’s MIME type.', - `filesize` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The size of the file in bytes.', + `filesize` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'The size of the file in bytes.', `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'A field indicating the status of the file. Two status are defined in core: temporary (0) and permanent (1). Temporary files older than DRUPAL_MAXIMUM_TEMP_FILE_AGE will be removed during a cron run.', `timestamp` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'UNIX timestamp for when the file was added.', PRIMARY KEY (`fid`), @@ -1109,15 +1108,26 @@ CREATE TABLE IF NOT EXISTS `file_managed` ( KEY `uid` (`uid`), KEY `status` (`status`), KEY `timestamp` (`timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores information for uploaded files.' AUTO_INCREMENT=1 ; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores information for uploaded files.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `file_managed` +-- --- -------------------------------------------------------- +LOCK TABLES `file_managed` WRITE; +/*!40000 ALTER TABLE `file_managed` DISABLE KEYS */; +/*!40000 ALTER TABLE `file_managed` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `file_usage` +-- Table structure for table `file_usage` -- -CREATE TABLE IF NOT EXISTS `file_usage` ( +DROP TABLE IF EXISTS `file_usage`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `file_usage` ( `fid` int(10) unsigned NOT NULL COMMENT 'File ID.', `module` varchar(255) NOT NULL DEFAULT '' COMMENT 'The name of the module that is using the file.', `type` varchar(64) NOT NULL DEFAULT '' COMMENT 'The name of the object type in which the file is used.', @@ -1128,14 +1138,25 @@ CREATE TABLE IF NOT EXISTS `file_usage` ( KEY `fid_count` (`fid`,`count`), KEY `fid_module` (`fid`,`module`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Track where a file is used.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `file_usage` +-- --- -------------------------------------------------------- +LOCK TABLES `file_usage` WRITE; +/*!40000 ALTER TABLE `file_usage` DISABLE KEYS */; +/*!40000 ALTER TABLE `file_usage` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `filter` +-- Table structure for table `filter` -- -CREATE TABLE IF NOT EXISTS `filter` ( +DROP TABLE IF EXISTS `filter`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `filter` ( `format` varchar(255) NOT NULL COMMENT 'Foreign key: The filter_format.format to which this filter is assigned.', `module` varchar(64) NOT NULL DEFAULT '' COMMENT 'The origin module of the filter.', `name` varchar(32) NOT NULL DEFAULT '' COMMENT 'Name of the filter being referenced.', @@ -1145,41 +1166,26 @@ CREATE TABLE IF NOT EXISTS `filter` ( PRIMARY KEY (`format`,`name`), KEY `list` (`weight`,`module`,`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table that maps filters (HTML corrector) to text formats ...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `filter` +-- Dumping data for table `filter` -- -INSERT INTO `filter` (`format`, `module`, `name`, `weight`, `status`, `settings`) VALUES -('filtered_html', 'filter', 'filter_autop', 2, 1, 0x613a303a7b7d), -('filtered_html', 'filter', 'filter_html', 1, 1, 0x613a333a7b733a31323a22616c6c6f7765645f68746d6c223b733a37343a223c613e203c656d3e203c7374726f6e673e203c636974653e203c626c6f636b71756f74653e203c636f64653e203c756c3e203c6f6c3e203c6c693e203c646c3e203c64743e203c64643e223b733a31363a2266696c7465725f68746d6c5f68656c70223b693a313b733a32303a2266696c7465725f68746d6c5f6e6f666f6c6c6f77223b693a303b7d), -('filtered_html', 'filter', 'filter_htmlcorrector', 10, 1, 0x613a303a7b7d), -('filtered_html', 'filter', 'filter_html_escape', -10, 0, 0x613a303a7b7d), -('filtered_html', 'filter', 'filter_url', 0, 1, 0x613a313a7b733a31373a2266696c7465725f75726c5f6c656e677468223b693a37323b7d), -('full_html', 'filter', 'filter_autop', 1, 1, 0x613a303a7b7d), -('full_html', 'filter', 'filter_html', -10, 0, 0x613a333a7b733a31323a22616c6c6f7765645f68746d6c223b733a37343a223c613e203c656d3e203c7374726f6e673e203c636974653e203c626c6f636b71756f74653e203c636f64653e203c756c3e203c6f6c3e203c6c693e203c646c3e203c64743e203c64643e223b733a31363a2266696c7465725f68746d6c5f68656c70223b693a313b733a32303a2266696c7465725f68746d6c5f6e6f666f6c6c6f77223b693a303b7d), -('full_html', 'filter', 'filter_htmlcorrector', 10, 1, 0x613a303a7b7d), -('full_html', 'filter', 'filter_html_escape', -10, 0, 0x613a303a7b7d), -('full_html', 'filter', 'filter_url', 0, 1, 0x613a313a7b733a31373a2266696c7465725f75726c5f6c656e677468223b693a37323b7d), -('php_code', 'filter', 'filter_autop', 0, 0, 0x613a303a7b7d), -('php_code', 'filter', 'filter_html', -10, 0, 0x613a333a7b733a31323a22616c6c6f7765645f68746d6c223b733a37343a223c613e203c656d3e203c7374726f6e673e203c636974653e203c626c6f636b71756f74653e203c636f64653e203c756c3e203c6f6c3e203c6c693e203c646c3e203c64743e203c64643e223b733a31363a2266696c7465725f68746d6c5f68656c70223b693a313b733a32303a2266696c7465725f68746d6c5f6e6f666f6c6c6f77223b693a303b7d), -('php_code', 'filter', 'filter_htmlcorrector', 10, 0, 0x613a303a7b7d), -('php_code', 'filter', 'filter_html_escape', -10, 0, 0x613a303a7b7d), -('php_code', 'filter', 'filter_url', 0, 0, 0x613a313a7b733a31373a2266696c7465725f75726c5f6c656e677468223b693a37323b7d), -('php_code', 'php', 'php_code', 0, 1, 0x613a303a7b7d), -('plain_text', 'filter', 'filter_autop', 2, 1, 0x613a303a7b7d), -('plain_text', 'filter', 'filter_html', -10, 0, 0x613a333a7b733a31323a22616c6c6f7765645f68746d6c223b733a37343a223c613e203c656d3e203c7374726f6e673e203c636974653e203c626c6f636b71756f74653e203c636f64653e203c756c3e203c6f6c3e203c6c693e203c646c3e203c64743e203c64643e223b733a31363a2266696c7465725f68746d6c5f68656c70223b693a313b733a32303a2266696c7465725f68746d6c5f6e6f666f6c6c6f77223b693a303b7d), -('plain_text', 'filter', 'filter_htmlcorrector', 10, 0, 0x613a303a7b7d), -('plain_text', 'filter', 'filter_html_escape', 0, 1, 0x613a303a7b7d), -('plain_text', 'filter', 'filter_url', 1, 1, 0x613a313a7b733a31373a2266696c7465725f75726c5f6c656e677468223b693a37323b7d); - --- -------------------------------------------------------- +LOCK TABLES `filter` WRITE; +/*!40000 ALTER TABLE `filter` DISABLE KEYS */; +INSERT INTO `filter` VALUES ('filtered_html','filter','filter_autop',2,1,'a:0:{}'),('filtered_html','filter','filter_html',1,1,'a:3:{s:12:\"allowed_html\";s:74:\"
    1. \";s:16:\"filter_html_help\";i:1;s:20:\"filter_html_nofollow\";i:0;}'),('filtered_html','filter','filter_htmlcorrector',10,1,'a:0:{}'),('filtered_html','filter','filter_html_escape',-10,0,'a:0:{}'),('filtered_html','filter','filter_url',0,1,'a:1:{s:17:\"filter_url_length\";i:72;}'),('full_html','filter','filter_autop',1,1,'a:0:{}'),('full_html','filter','filter_html',-10,0,'a:3:{s:12:\"allowed_html\";s:74:\"
        1. \";s:16:\"filter_html_help\";i:1;s:20:\"filter_html_nofollow\";i:0;}'),('full_html','filter','filter_htmlcorrector',10,1,'a:0:{}'),('full_html','filter','filter_html_escape',-10,0,'a:0:{}'),('full_html','filter','filter_url',0,1,'a:1:{s:17:\"filter_url_length\";i:72;}'),('php_code','filter','filter_autop',0,0,'a:0:{}'),('php_code','filter','filter_html',-10,0,'a:3:{s:12:\"allowed_html\";s:74:\"
            1. \";s:16:\"filter_html_help\";i:1;s:20:\"filter_html_nofollow\";i:0;}'),('php_code','filter','filter_htmlcorrector',10,0,'a:0:{}'),('php_code','filter','filter_html_escape',-10,0,'a:0:{}'),('php_code','filter','filter_url',0,0,'a:1:{s:17:\"filter_url_length\";i:72;}'),('php_code','php','php_code',0,1,'a:0:{}'),('plain_text','filter','filter_autop',2,1,'a:0:{}'),('plain_text','filter','filter_html',-10,0,'a:3:{s:12:\"allowed_html\";s:74:\"
                1. \";s:16:\"filter_html_help\";i:1;s:20:\"filter_html_nofollow\";i:0;}'),('plain_text','filter','filter_htmlcorrector',10,0,'a:0:{}'),('plain_text','filter','filter_html_escape',0,1,'a:0:{}'),('plain_text','filter','filter_url',1,1,'a:1:{s:17:\"filter_url_length\";i:72;}'); +/*!40000 ALTER TABLE `filter` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `filter_format` +-- Table structure for table `filter_format` -- -CREATE TABLE IF NOT EXISTS `filter_format` ( +DROP TABLE IF EXISTS `filter_format`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `filter_format` ( `format` varchar(255) NOT NULL COMMENT 'Primary Key: Unique machine name of the format.', `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of the text format (Filtered HTML).', `cache` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Flag to indicate whether format is cacheable. (1 = cacheable, 0 = not cacheable)', @@ -1189,24 +1195,26 @@ CREATE TABLE IF NOT EXISTS `filter_format` ( UNIQUE KEY `name` (`name`), KEY `status_weight` (`status`,`weight`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores text formats: custom groupings of filters, such as...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `filter_format` +-- Dumping data for table `filter_format` -- -INSERT INTO `filter_format` (`format`, `name`, `cache`, `status`, `weight`) VALUES -('filtered_html', 'Filtered HTML', 1, 1, 0), -('full_html', 'Full HTML', 1, 1, 1), -('php_code', 'PHP code', 0, 1, 11), -('plain_text', 'Plain text', 1, 1, 10); - --- -------------------------------------------------------- +LOCK TABLES `filter_format` WRITE; +/*!40000 ALTER TABLE `filter_format` DISABLE KEYS */; +INSERT INTO `filter_format` VALUES ('filtered_html','Filtered HTML',1,1,0),('full_html','Full HTML',1,1,1),('php_code','PHP code',0,1,11),('plain_text','Plain text',1,1,10); +/*!40000 ALTER TABLE `filter_format` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `flood` +-- Table structure for table `flood` -- -CREATE TABLE IF NOT EXISTS `flood` ( +DROP TABLE IF EXISTS `flood`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `flood` ( `fid` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique flood event ID.', `event` varchar(64) NOT NULL DEFAULT '' COMMENT 'Name of event (e.g. contact).', `identifier` varchar(128) NOT NULL DEFAULT '' COMMENT 'Identifier of the visitor, such as an IP address or hostname.', @@ -1215,29 +1223,51 @@ CREATE TABLE IF NOT EXISTS `flood` ( PRIMARY KEY (`fid`), KEY `allow` (`event`,`identifier`,`timestamp`), KEY `purge` (`expiration`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Flood controls the threshold of events, such as the...' AUTO_INCREMENT=1 ; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Flood controls the threshold of events, such as the...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `flood` +-- --- -------------------------------------------------------- +LOCK TABLES `flood` WRITE; +/*!40000 ALTER TABLE `flood` DISABLE KEYS */; +/*!40000 ALTER TABLE `flood` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `history` +-- Table structure for table `history` -- -CREATE TABLE IF NOT EXISTS `history` ( +DROP TABLE IF EXISTS `history`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `history` ( `uid` int(11) NOT NULL DEFAULT '0' COMMENT 'The users.uid that read the node nid.', - `nid` int(11) NOT NULL DEFAULT '0' COMMENT 'The node.nid that was read.', + `nid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The node.nid that was read.', `timestamp` int(11) NOT NULL DEFAULT '0' COMMENT 'The Unix timestamp at which the read occurred.', PRIMARY KEY (`uid`,`nid`), KEY `nid` (`nid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='A record of which users have read which nodes.'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `history` +-- + +LOCK TABLES `history` WRITE; +/*!40000 ALTER TABLE `history` DISABLE KEYS */; +/*!40000 ALTER TABLE `history` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `image_effects` +-- Table structure for table `image_effects` -- -CREATE TABLE IF NOT EXISTS `image_effects` ( +DROP TABLE IF EXISTS `image_effects`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `image_effects` ( `ieid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'The primary identifier for an image effect.', `isid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The image_styles.isid for an image style.', `weight` int(11) NOT NULL DEFAULT '0' COMMENT 'The weight of the effect in the style.', @@ -1246,53 +1276,76 @@ CREATE TABLE IF NOT EXISTS `image_effects` ( PRIMARY KEY (`ieid`), KEY `isid` (`isid`), KEY `weight` (`weight`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores configuration options for image effects.' AUTO_INCREMENT=1 ; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores configuration options for image effects.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `image_effects` +-- --- -------------------------------------------------------- +LOCK TABLES `image_effects` WRITE; +/*!40000 ALTER TABLE `image_effects` DISABLE KEYS */; +/*!40000 ALTER TABLE `image_effects` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `image_styles` +-- Table structure for table `image_styles` -- -CREATE TABLE IF NOT EXISTS `image_styles` ( +DROP TABLE IF EXISTS `image_styles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `image_styles` ( `isid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'The primary identifier for an image style.', `name` varchar(255) NOT NULL COMMENT 'The style name.', `label` varchar(255) NOT NULL DEFAULT '' COMMENT 'The style administrative name.', PRIMARY KEY (`isid`), UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores configuration options for image styles.' AUTO_INCREMENT=1 ; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores configuration options for image styles.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `image_styles` +-- --- -------------------------------------------------------- +LOCK TABLES `image_styles` WRITE; +/*!40000 ALTER TABLE `image_styles` DISABLE KEYS */; +/*!40000 ALTER TABLE `image_styles` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `menu_custom` +-- Table structure for table `menu_custom` -- -CREATE TABLE IF NOT EXISTS `menu_custom` ( +DROP TABLE IF EXISTS `menu_custom`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `menu_custom` ( `menu_name` varchar(32) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique key for menu. This is used as a block delta so length is 32.', `title` varchar(255) NOT NULL DEFAULT '' COMMENT 'Menu title; displayed at top of block.', `description` text COMMENT 'Menu description.', PRIMARY KEY (`menu_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Holds definitions for top-level custom menus (for example...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `menu_custom` +-- Dumping data for table `menu_custom` -- -INSERT INTO `menu_custom` (`menu_name`, `title`, `description`) VALUES -('main-menu', 'Main menu', 'The Main menu is used on many sites to show the major sections of the site, often in a top navigation bar.'), -('management', 'Management', 'The Management menu contains links for administrative tasks.'), -('menu-bottom-footer-menu', 'Bottom Footer Menu', ''), -('navigation', 'Navigation', 'The Navigation menu contains links intended for site visitors. Links are added to the Navigation menu automatically by some modules.'), -('user-menu', 'User menu', 'The User menu contains links related to the user''s account, as well as the ''Log out'' link.'); - --- -------------------------------------------------------- +LOCK TABLES `menu_custom` WRITE; +/*!40000 ALTER TABLE `menu_custom` DISABLE KEYS */; +INSERT INTO `menu_custom` VALUES ('main-menu','Main menu','The Main menu is used on many sites to show the major sections of the site, often in a top navigation bar.'),('management','Management','The Management menu contains links for administrative tasks.'),('menu-bottom-footer-menu','Bottom Footer Menu',''),('navigation','Navigation','The Navigation menu contains links intended for site visitors. Links are added to the Navigation menu automatically by some modules.'),('user-menu','User menu','The User menu contains links related to the user\'s account, as well as the \'Log out\' link.'); +/*!40000 ALTER TABLE `menu_custom` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `menu_links` +-- Table structure for table `menu_links` -- -CREATE TABLE IF NOT EXISTS `menu_links` ( +DROP TABLE IF EXISTS `menu_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `menu_links` ( `menu_name` varchar(32) NOT NULL DEFAULT '' COMMENT 'The menu name. All links with the same menu name (such as ’navigation’) are part of the same menu.', `mlid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'The menu link ID (mlid) is the integer primary key.', `plid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The parent link ID (plid) is the mlid of the link above in the hierarchy, or zero if the link is at the top level in its menu.', @@ -1323,329 +1376,27 @@ CREATE TABLE IF NOT EXISTS `menu_links` ( KEY `menu_plid_expand_child` (`menu_name`,`plid`,`expanded`,`has_children`), KEY `menu_parents` (`menu_name`,`p1`,`p2`,`p3`,`p4`,`p5`,`p6`,`p7`,`p8`,`p9`), KEY `router_path` (`router_path`(128)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Contains the individual links within a menu.' AUTO_INCREMENT=393 ; - --- --- Άδειασμα δεδομένων του πίνακα `menu_links` --- - -INSERT INTO `menu_links` (`menu_name`, `mlid`, `plid`, `link_path`, `router_path`, `link_title`, `options`, `module`, `hidden`, `external`, `has_children`, `expanded`, `weight`, `depth`, `customized`, `p1`, `p2`, `p3`, `p4`, `p5`, `p6`, `p7`, `p8`, `p9`, `updated`) VALUES -('management', 1, 0, 'admin', 'admin', 'Administration', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 9, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('user-menu', 2, 0, 'user', 'user', 'User account', 0x613a313a7b733a353a22616c746572223b623a313b7d, 'system', 0, 0, 0, 0, -10, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 3, 0, 'comment/%', 'comment/%', 'Comment permalink', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 4, 0, 'filter/tips', 'filter/tips', 'Compose tips', 0x613a303a7b7d, 'system', 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 5, 0, 'node/%', 'node/%', '', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 6, 0, 'node/add', 'node/add', 'Add content', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 0, 1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 7, 1, 'admin/appearance', 'admin/appearance', 'Appearance', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33333a2253656c65637420616e6420636f6e66696775726520796f7572207468656d65732e223b7d7d, 'system', 0, 0, 0, 0, -6, 2, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 8, 1, 'admin/config', 'admin/config', 'Configuration', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32303a2241646d696e69737465722073657474696e67732e223b7d7d, 'system', 0, 0, 1, 0, 0, 2, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 9, 1, 'admin/content', 'admin/content', 'Content', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33323a2241646d696e697374657220636f6e74656e7420616e6420636f6d6d656e74732e223b7d7d, 'system', 0, 0, 1, 0, -10, 2, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0), -('user-menu', 10, 2, 'user/register', 'user/register', 'Create new account', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 2, 0, 2, 10, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 11, 1, 'admin/dashboard', 'admin/dashboard', 'Dashboard', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33343a225669657720616e6420637573746f6d697a6520796f75722064617368626f6172642e223b7d7d, 'system', 0, 0, 0, 0, -15, 2, 0, 1, 11, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 12, 1, 'admin/help', 'admin/help', 'Help', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34383a225265666572656e636520666f722075736167652c20636f6e66696775726174696f6e2c20616e64206d6f64756c65732e223b7d7d, 'system', 0, 0, 0, 0, 9, 2, 0, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 13, 1, 'admin/index', 'admin/index', 'Index', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -18, 2, 0, 1, 13, 0, 0, 0, 0, 0, 0, 0, 0), -('user-menu', 14, 2, 'user/login', 'user/login', 'Log in', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 2, 0, 2, 14, 0, 0, 0, 0, 0, 0, 0, 0), -('user-menu', 15, 0, 'user/logout', 'user/logout', 'Log out', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 10, 1, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 16, 1, 'admin/modules', 'admin/modules', 'Modules', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32363a22457874656e6420736974652066756e6374696f6e616c6974792e223b7d7d, 'system', 0, 0, 0, 0, -2, 2, 0, 1, 16, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 17, 0, 'user/%', 'user/%', 'My account', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 0, 1, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 18, 1, 'admin/people', 'admin/people', 'People', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34353a224d616e6167652075736572206163636f756e74732c20726f6c65732c20616e64207065726d697373696f6e732e223b7d7d, 'system', 0, 0, 0, 0, -4, 2, 0, 1, 18, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 19, 1, 'admin/reports', 'admin/reports', 'Reports', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33343a2256696577207265706f7274732c20757064617465732c20616e64206572726f72732e223b7d7d, 'system', 0, 0, 1, 0, 5, 2, 0, 1, 19, 0, 0, 0, 0, 0, 0, 0, 0), -('user-menu', 20, 2, 'user/password', 'user/password', 'Request new password', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 2, 0, 2, 20, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 21, 1, 'admin/structure', 'admin/structure', 'Structure', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34353a2241646d696e697374657220626c6f636b732c20636f6e74656e742074797065732c206d656e75732c206574632e223b7d7d, 'system', 0, 0, 1, 0, -8, 2, 0, 1, 21, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 22, 1, 'admin/tasks', 'admin/tasks', 'Tasks', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -20, 2, 0, 1, 22, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 23, 0, 'comment/reply/%', 'comment/reply/%', 'Add new comment', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 1, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 24, 3, 'comment/%/approve', 'comment/%/approve', 'Approve', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 1, 2, 0, 3, 24, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 25, 3, 'comment/%/delete', 'comment/%/delete', 'Delete', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 2, 2, 0, 3, 25, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 26, 3, 'comment/%/edit', 'comment/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 2, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 27, 0, 'taxonomy/term/%', 'taxonomy/term/%', 'Taxonomy term', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 1, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 28, 3, 'comment/%/view', 'comment/%/view', 'View comment', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 2, 0, 3, 28, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 29, 18, 'admin/people/create', 'admin/people/create', 'Add user', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 18, 29, 0, 0, 0, 0, 0, 0, 0), -('management', 30, 21, 'admin/structure/block', 'admin/structure/block', 'Blocks', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a37393a22436f6e666967757265207768617420626c6f636b20636f6e74656e74206170706561727320696e20796f75722073697465277320736964656261727320616e64206f7468657220726567696f6e732e223b7d7d, 'system', 0, 0, 1, 0, 0, 3, 0, 1, 21, 30, 0, 0, 0, 0, 0, 0, 0), -('navigation', 31, 17, 'user/%/cancel', 'user/%/cancel', 'Cancel account', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 0, 2, 0, 17, 31, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 32, 9, 'admin/content/comment', 'admin/content/comment', 'Comments', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a35393a224c69737420616e642065646974207369746520636f6d6d656e747320616e642074686520636f6d6d656e7420617070726f76616c2071756575652e223b7d7d, 'system', 0, 0, 0, 0, 0, 3, 0, 1, 9, 32, 0, 0, 0, 0, 0, 0, 0), -('management', 33, 11, 'admin/dashboard/configure', 'admin/dashboard/configure', 'Configure available dashboard blocks', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a35333a22436f6e66696775726520776869636820626c6f636b732063616e2062652073686f776e206f6e207468652064617368626f6172642e223b7d7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 11, 33, 0, 0, 0, 0, 0, 0, 0), -('management', 34, 9, 'admin/content/node', 'admin/content/node', 'Content', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 3, 0, 1, 9, 34, 0, 0, 0, 0, 0, 0, 0), -('management', 35, 8, 'admin/config/content', 'admin/config/content', 'Content authoring', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a35333a2253657474696e67732072656c6174656420746f20666f726d617474696e6720616e6420617574686f72696e6720636f6e74656e742e223b7d7d, 'system', 0, 0, 1, 0, -15, 3, 0, 1, 8, 35, 0, 0, 0, 0, 0, 0, 0), -('management', 36, 21, 'admin/structure/types', 'admin/structure/types', 'Content types', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a39323a224d616e61676520636f6e74656e742074797065732c20696e636c7564696e672064656661756c74207374617475732c2066726f6e7420706167652070726f6d6f74696f6e2c20636f6d6d656e742073657474696e67732c206574632e223b7d7d, 'system', 0, 0, 1, 0, 0, 3, 0, 1, 21, 36, 0, 0, 0, 0, 0, 0, 0), -('management', 37, 11, 'admin/dashboard/customize', 'admin/dashboard/customize', 'Customize dashboard', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32353a22437573746f6d697a6520796f75722064617368626f6172642e223b7d7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 11, 37, 0, 0, 0, 0, 0, 0, 0), -('navigation', 38, 5, 'node/%/delete', 'node/%/delete', 'Delete', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 1, 2, 0, 5, 38, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 39, 8, 'admin/config/development', 'admin/config/development', 'Development', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a31383a22446576656c6f706d656e7420746f6f6c732e223b7d7d, 'system', 0, 0, 1, 0, -10, 3, 0, 1, 8, 39, 0, 0, 0, 0, 0, 0, 0), -('navigation', 40, 17, 'user/%/edit', 'user/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 2, 0, 17, 40, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 41, 5, 'node/%/edit', 'node/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 2, 0, 5, 41, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 42, 19, 'admin/reports/fields', 'admin/reports/fields', 'Field list', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33393a224f76657276696577206f66206669656c6473206f6e20616c6c20656e746974792074797065732e223b7d7d, 'system', 0, 0, 0, 0, 0, 3, 0, 1, 19, 42, 0, 0, 0, 0, 0, 0, 0), -('management', 43, 7, 'admin/appearance/list', 'admin/appearance/list', 'List', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33313a2253656c65637420616e6420636f6e66696775726520796f7572207468656d65223b7d7d, 'system', -1, 0, 0, 0, -1, 3, 0, 1, 7, 43, 0, 0, 0, 0, 0, 0, 0), -('management', 44, 16, 'admin/modules/list', 'admin/modules/list', 'List', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 16, 44, 0, 0, 0, 0, 0, 0, 0), -('management', 45, 18, 'admin/people/people', 'admin/people/people', 'List', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a35303a2246696e6420616e64206d616e6167652070656f706c6520696e746572616374696e67207769746820796f757220736974652e223b7d7d, 'system', -1, 0, 0, 0, -10, 3, 0, 1, 18, 45, 0, 0, 0, 0, 0, 0, 0), -('management', 46, 8, 'admin/config/media', 'admin/config/media', 'Media', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a31323a224d6564696120746f6f6c732e223b7d7d, 'system', 0, 0, 1, 0, -10, 3, 0, 1, 8, 46, 0, 0, 0, 0, 0, 0, 0), -('management', 47, 21, 'admin/structure/menu', 'admin/structure/menu', 'Menus', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a38363a22416464206e6577206d656e757320746f20796f757220736974652c2065646974206578697374696e67206d656e75732c20616e642072656e616d6520616e642072656f7267616e697a65206d656e75206c696e6b732e223b7d7d, 'system', 0, 0, 1, 0, 0, 3, 0, 1, 21, 47, 0, 0, 0, 0, 0, 0, 0), -('management', 48, 8, 'admin/config/people', 'admin/config/people', 'People', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32343a22436f6e6669677572652075736572206163636f756e74732e223b7d7d, 'system', 0, 0, 1, 0, -20, 3, 0, 1, 8, 48, 0, 0, 0, 0, 0, 0, 0), -('management', 49, 18, 'admin/people/permissions', 'admin/people/permissions', 'Permissions', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a36343a2244657465726d696e652061636365737320746f2066656174757265732062792073656c656374696e67207065726d697373696f6e7320666f7220726f6c65732e223b7d7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 18, 49, 0, 0, 0, 0, 0, 0, 0), -('management', 50, 19, 'admin/reports/dblog', 'admin/reports/dblog', 'Recent log messages', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34333a2256696577206576656e74732074686174206861766520726563656e746c79206265656e206c6f676765642e223b7d7d, 'system', 0, 0, 0, 0, -1, 3, 0, 1, 19, 50, 0, 0, 0, 0, 0, 0, 0), -('management', 51, 8, 'admin/config/regional', 'admin/config/regional', 'Regional and language', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34383a22526567696f6e616c2073657474696e67732c206c6f63616c697a6174696f6e20616e64207472616e736c6174696f6e2e223b7d7d, 'system', 0, 0, 1, 0, -5, 3, 0, 1, 8, 51, 0, 0, 0, 0, 0, 0, 0), -('navigation', 52, 5, 'node/%/revisions', 'node/%/revisions', 'Revisions', 0x613a303a7b7d, 'system', -1, 0, 1, 0, 2, 2, 0, 5, 52, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 53, 8, 'admin/config/search', 'admin/config/search', 'Search and metadata', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33363a224c6f63616c2073697465207365617263682c206d6574616461746120616e642053454f2e223b7d7d, 'system', 0, 0, 1, 0, -10, 3, 0, 1, 8, 53, 0, 0, 0, 0, 0, 0, 0), -('management', 54, 7, 'admin/appearance/settings', 'admin/appearance/settings', 'Settings', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34363a22436f6e6669677572652064656661756c7420616e64207468656d652073706563696669632073657474696e67732e223b7d7d, 'system', -1, 0, 0, 0, 20, 3, 0, 1, 7, 54, 0, 0, 0, 0, 0, 0, 0), -('management', 55, 19, 'admin/reports/status', 'admin/reports/status', 'Status report', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a37343a22476574206120737461747573207265706f72742061626f757420796f757220736974652773206f7065726174696f6e20616e6420616e792064657465637465642070726f626c656d732e223b7d7d, 'system', 0, 0, 0, 0, -60, 3, 0, 1, 19, 55, 0, 0, 0, 0, 0, 0, 0), -('management', 56, 8, 'admin/config/system', 'admin/config/system', 'System', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33373a2247656e6572616c2073797374656d2072656c6174656420636f6e66696775726174696f6e2e223b7d7d, 'system', 0, 0, 1, 0, -20, 3, 0, 1, 8, 56, 0, 0, 0, 0, 0, 0, 0), -('management', 57, 21, 'admin/structure/taxonomy', 'admin/structure/taxonomy', 'Taxonomy', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a36373a224d616e6167652074616767696e672c2063617465676f72697a6174696f6e2c20616e6420636c617373696669636174696f6e206f6620796f757220636f6e74656e742e223b7d7d, 'system', 0, 0, 1, 0, 0, 3, 0, 1, 21, 57, 0, 0, 0, 0, 0, 0, 0), -('management', 58, 19, 'admin/reports/access-denied', 'admin/reports/access-denied', 'Top ''access denied'' errors', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33353a225669657720276163636573732064656e69656427206572726f7273202834303373292e223b7d7d, 'system', 0, 0, 0, 0, 0, 3, 0, 1, 19, 58, 0, 0, 0, 0, 0, 0, 0), -('management', 59, 19, 'admin/reports/page-not-found', 'admin/reports/page-not-found', 'Top ''page not found'' errors', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33363a2256696577202770616765206e6f7420666f756e6427206572726f7273202834303473292e223b7d7d, 'system', 0, 0, 0, 0, 0, 3, 0, 1, 19, 59, 0, 0, 0, 0, 0, 0, 0), -('management', 60, 16, 'admin/modules/uninstall', 'admin/modules/uninstall', 'Uninstall', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 20, 3, 0, 1, 16, 60, 0, 0, 0, 0, 0, 0, 0), -('management', 61, 8, 'admin/config/user-interface', 'admin/config/user-interface', 'User interface', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33383a22546f6f6c73207468617420656e68616e636520746865207573657220696e746572666163652e223b7d7d, 'system', 0, 0, 1, 0, -15, 3, 0, 1, 8, 61, 0, 0, 0, 0, 0, 0, 0), -('navigation', 62, 5, 'node/%/view', 'node/%/view', 'View', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 2, 0, 5, 62, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 63, 17, 'user/%/view', 'user/%/view', 'View', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 2, 0, 17, 63, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 64, 8, 'admin/config/services', 'admin/config/services', 'Web services', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33303a22546f6f6c732072656c6174656420746f207765622073657276696365732e223b7d7d, 'system', 0, 0, 1, 0, 0, 3, 0, 1, 8, 64, 0, 0, 0, 0, 0, 0, 0), -('management', 65, 8, 'admin/config/workflow', 'admin/config/workflow', 'Workflow', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34333a22436f6e74656e7420776f726b666c6f772c20656469746f7269616c20776f726b666c6f7720746f6f6c732e223b7d7d, 'system', 0, 0, 0, 0, 5, 3, 0, 1, 8, 65, 0, 0, 0, 0, 0, 0, 0), -('management', 66, 12, 'admin/help/block', 'admin/help/block', 'block', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 66, 0, 0, 0, 0, 0, 0, 0), -('management', 67, 12, 'admin/help/color', 'admin/help/color', 'color', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 67, 0, 0, 0, 0, 0, 0, 0), -('management', 68, 12, 'admin/help/comment', 'admin/help/comment', 'comment', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 68, 0, 0, 0, 0, 0, 0, 0), -('management', 69, 12, 'admin/help/contextual', 'admin/help/contextual', 'contextual', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 69, 0, 0, 0, 0, 0, 0, 0), -('management', 70, 12, 'admin/help/dashboard', 'admin/help/dashboard', 'dashboard', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 70, 0, 0, 0, 0, 0, 0, 0), -('management', 71, 12, 'admin/help/dblog', 'admin/help/dblog', 'dblog', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 71, 0, 0, 0, 0, 0, 0, 0), -('management', 72, 12, 'admin/help/field', 'admin/help/field', 'field', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 72, 0, 0, 0, 0, 0, 0, 0), -('management', 73, 12, 'admin/help/field_sql_storage', 'admin/help/field_sql_storage', 'field_sql_storage', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 73, 0, 0, 0, 0, 0, 0, 0), -('management', 74, 12, 'admin/help/field_ui', 'admin/help/field_ui', 'field_ui', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 74, 0, 0, 0, 0, 0, 0, 0), -('management', 75, 12, 'admin/help/file', 'admin/help/file', 'file', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 75, 0, 0, 0, 0, 0, 0, 0), -('management', 76, 12, 'admin/help/filter', 'admin/help/filter', 'filter', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 76, 0, 0, 0, 0, 0, 0, 0), -('management', 77, 12, 'admin/help/help', 'admin/help/help', 'help', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 77, 0, 0, 0, 0, 0, 0, 0), -('management', 78, 12, 'admin/help/image', 'admin/help/image', 'image', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 78, 0, 0, 0, 0, 0, 0, 0), -('management', 79, 12, 'admin/help/list', 'admin/help/list', 'list', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 79, 0, 0, 0, 0, 0, 0, 0), -('management', 80, 12, 'admin/help/menu', 'admin/help/menu', 'menu', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 80, 0, 0, 0, 0, 0, 0, 0), -('management', 81, 12, 'admin/help/node', 'admin/help/node', 'node', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 81, 0, 0, 0, 0, 0, 0, 0), -('management', 82, 12, 'admin/help/options', 'admin/help/options', 'options', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 82, 0, 0, 0, 0, 0, 0, 0), -('management', 83, 12, 'admin/help/system', 'admin/help/system', 'system', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 83, 0, 0, 0, 0, 0, 0, 0), -('management', 84, 12, 'admin/help/taxonomy', 'admin/help/taxonomy', 'taxonomy', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 84, 0, 0, 0, 0, 0, 0, 0), -('management', 85, 12, 'admin/help/text', 'admin/help/text', 'text', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 85, 0, 0, 0, 0, 0, 0, 0), -('management', 86, 12, 'admin/help/user', 'admin/help/user', 'user', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 86, 0, 0, 0, 0, 0, 0, 0), -('navigation', 87, 27, 'taxonomy/term/%/edit', 'taxonomy/term/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 10, 2, 0, 27, 87, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 88, 27, 'taxonomy/term/%/view', 'taxonomy/term/%/view', 'View', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 2, 0, 27, 88, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 89, 57, 'admin/structure/taxonomy/%', 'admin/structure/taxonomy/%', '', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 4, 0, 1, 21, 57, 89, 0, 0, 0, 0, 0, 0), -('management', 90, 48, 'admin/config/people/accounts', 'admin/config/people/accounts', 'Account settings', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a3130393a22436f6e6669677572652064656661756c74206265686176696f72206f662075736572732c20696e636c7564696e6720726567697374726174696f6e20726571756972656d656e74732c20652d6d61696c732c206669656c64732c20616e6420757365722070696374757265732e223b7d7d, 'system', 0, 0, 0, 0, -10, 4, 0, 1, 8, 48, 90, 0, 0, 0, 0, 0, 0), -('management', 91, 56, 'admin/config/system/actions', 'admin/config/system/actions', 'Actions', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34313a224d616e6167652074686520616374696f6e7320646566696e656420666f7220796f757220736974652e223b7d7d, 'system', 0, 0, 1, 0, 0, 4, 0, 1, 8, 56, 91, 0, 0, 0, 0, 0, 0), -('management', 92, 30, 'admin/structure/block/add', 'admin/structure/block/add', 'Add block', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 21, 30, 92, 0, 0, 0, 0, 0, 0), -('management', 93, 36, 'admin/structure/types/add', 'admin/structure/types/add', 'Add content type', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 21, 36, 93, 0, 0, 0, 0, 0, 0), -('management', 94, 47, 'admin/structure/menu/add', 'admin/structure/menu/add', 'Add menu', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 21, 47, 94, 0, 0, 0, 0, 0, 0), -('management', 95, 57, 'admin/structure/taxonomy/add', 'admin/structure/taxonomy/add', 'Add vocabulary', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 21, 57, 95, 0, 0, 0, 0, 0, 0), -('management', 96, 54, 'admin/appearance/settings/bartik', 'admin/appearance/settings/bartik', 'Bartik', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 7, 54, 96, 0, 0, 0, 0, 0, 0), -('management', 97, 53, 'admin/config/search/clean-urls', 'admin/config/search/clean-urls', 'Clean URLs', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34333a22456e61626c65206f722064697361626c6520636c65616e2055524c7320666f7220796f757220736974652e223b7d7d, 'system', 0, 0, 0, 0, 5, 4, 0, 1, 8, 53, 97, 0, 0, 0, 0, 0, 0), -('management', 98, 56, 'admin/config/system/cron', 'admin/config/system/cron', 'Cron', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34303a224d616e616765206175746f6d617469632073697465206d61696e74656e616e6365207461736b732e223b7d7d, 'system', 0, 0, 0, 0, 20, 4, 0, 1, 8, 56, 98, 0, 0, 0, 0, 0, 0), -('management', 99, 51, 'admin/config/regional/date-time', 'admin/config/regional/date-time', 'Date and time', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34343a22436f6e66696775726520646973706c617920666f726d61747320666f72206461746520616e642074696d652e223b7d7d, 'system', 0, 0, 0, 0, -15, 4, 0, 1, 8, 51, 99, 0, 0, 0, 0, 0, 0), -('management', 100, 19, 'admin/reports/event/%', 'admin/reports/event/%', 'Details', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 3, 0, 1, 19, 100, 0, 0, 0, 0, 0, 0, 0), -('management', 101, 46, 'admin/config/media/file-system', 'admin/config/media/file-system', 'File system', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a36383a2254656c6c2044727570616c20776865726520746f2073746f72652075706c6f616465642066696c657320616e6420686f772074686579206172652061636365737365642e223b7d7d, 'system', 0, 0, 0, 0, -10, 4, 0, 1, 8, 46, 101, 0, 0, 0, 0, 0, 0), -('management', 102, 54, 'admin/appearance/settings/garland', 'admin/appearance/settings/garland', 'Garland', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 7, 54, 102, 0, 0, 0, 0, 0, 0), -('management', 103, 54, 'admin/appearance/settings/global', 'admin/appearance/settings/global', 'Global settings', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -1, 4, 0, 1, 7, 54, 103, 0, 0, 0, 0, 0, 0), -('management', 104, 48, 'admin/config/people/ip-blocking', 'admin/config/people/ip-blocking', 'IP address blocking', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32383a224d616e61676520626c6f636b6564204950206164647265737365732e223b7d7d, 'system', 0, 0, 1, 0, 10, 4, 0, 1, 8, 48, 104, 0, 0, 0, 0, 0, 0), -('management', 105, 46, 'admin/config/media/image-styles', 'admin/config/media/image-styles', 'Image styles', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a37383a22436f6e666967757265207374796c657320746861742063616e206265207573656420666f7220726573697a696e67206f722061646a757374696e6720696d61676573206f6e20646973706c61792e223b7d7d, 'system', 0, 0, 1, 0, 0, 4, 0, 1, 8, 46, 105, 0, 0, 0, 0, 0, 0), -('management', 106, 46, 'admin/config/media/image-toolkit', 'admin/config/media/image-toolkit', 'Image toolkit', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a37343a2243686f6f736520776869636820696d61676520746f6f6c6b697420746f2075736520696620796f75206861766520696e7374616c6c6564206f7074696f6e616c20746f6f6c6b6974732e223b7d7d, 'system', 0, 0, 0, 0, 20, 4, 0, 1, 8, 46, 106, 0, 0, 0, 0, 0, 0), -('management', 107, 44, 'admin/modules/list/confirm', 'admin/modules/list/confirm', 'List', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 16, 44, 107, 0, 0, 0, 0, 0, 0), -('management', 108, 36, 'admin/structure/types/list', 'admin/structure/types/list', 'List', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 4, 0, 1, 21, 36, 108, 0, 0, 0, 0, 0, 0), -('management', 109, 57, 'admin/structure/taxonomy/list', 'admin/structure/taxonomy/list', 'List', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 4, 0, 1, 21, 57, 109, 0, 0, 0, 0, 0, 0), -('management', 110, 47, 'admin/structure/menu/list', 'admin/structure/menu/list', 'List menus', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 4, 0, 1, 21, 47, 110, 0, 0, 0, 0, 0, 0), -('management', 111, 39, 'admin/config/development/logging', 'admin/config/development/logging', 'Logging and errors', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a3135343a2253657474696e677320666f72206c6f6767696e6720616e6420616c65727473206d6f64756c65732e20566172696f7573206d6f64756c65732063616e20726f7574652044727570616c27732073797374656d206576656e747320746f20646966666572656e742064657374696e6174696f6e732c2073756368206173207379736c6f672c2064617461626173652c20656d61696c2c206574632e223b7d7d, 'system', 0, 0, 0, 0, -15, 4, 0, 1, 8, 39, 111, 0, 0, 0, 0, 0, 0), -('management', 112, 39, 'admin/config/development/maintenance', 'admin/config/development/maintenance', 'Maintenance mode', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a36323a2254616b65207468652073697465206f66666c696e6520666f72206d61696e74656e616e6365206f72206272696e67206974206261636b206f6e6c696e652e223b7d7d, 'system', 0, 0, 0, 0, -10, 4, 0, 1, 8, 39, 112, 0, 0, 0, 0, 0, 0), -('management', 113, 39, 'admin/config/development/performance', 'admin/config/development/performance', 'Performance', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a3130313a22456e61626c65206f722064697361626c6520706167652063616368696e6720666f7220616e6f6e796d6f757320757365727320616e64207365742043535320616e64204a532062616e647769647468206f7074696d697a6174696f6e206f7074696f6e732e223b7d7d, 'system', 0, 0, 0, 0, -20, 4, 0, 1, 8, 39, 113, 0, 0, 0, 0, 0, 0), -('management', 114, 49, 'admin/people/permissions/list', 'admin/people/permissions/list', 'Permissions', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a36343a2244657465726d696e652061636365737320746f2066656174757265732062792073656c656374696e67207065726d697373696f6e7320666f7220726f6c65732e223b7d7d, 'system', -1, 0, 0, 0, -8, 4, 0, 1, 18, 49, 114, 0, 0, 0, 0, 0, 0), -('management', 115, 32, 'admin/content/comment/new', 'admin/content/comment/new', 'Published comments', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 4, 0, 1, 9, 32, 115, 0, 0, 0, 0, 0, 0), -('management', 116, 64, 'admin/config/services/rss-publishing', 'admin/config/services/rss-publishing', 'RSS publishing', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a3131343a22436f6e666967757265207468652073697465206465736372697074696f6e2c20746865206e756d626572206f66206974656d7320706572206665656420616e6420776865746865722066656564732073686f756c64206265207469746c65732f746561736572732f66756c6c2d746578742e223b7d7d, 'system', 0, 0, 0, 0, 0, 4, 0, 1, 8, 64, 116, 0, 0, 0, 0, 0, 0), -('management', 117, 51, 'admin/config/regional/settings', 'admin/config/regional/settings', 'Regional settings', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a35343a2253657474696e677320666f7220746865207369746527732064656661756c742074696d65207a6f6e6520616e6420636f756e7472792e223b7d7d, 'system', 0, 0, 0, 0, -20, 4, 0, 1, 8, 51, 117, 0, 0, 0, 0, 0, 0), -('management', 118, 49, 'admin/people/permissions/roles', 'admin/people/permissions/roles', 'Roles', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33303a224c6973742c20656469742c206f7220616464207573657220726f6c65732e223b7d7d, 'system', -1, 0, 1, 0, -5, 4, 0, 1, 18, 49, 118, 0, 0, 0, 0, 0, 0), -('management', 119, 47, 'admin/structure/menu/settings', 'admin/structure/menu/settings', 'Settings', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 5, 4, 0, 1, 21, 47, 119, 0, 0, 0, 0, 0, 0), -('management', 120, 54, 'admin/appearance/settings/seven', 'admin/appearance/settings/seven', 'Seven', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 7, 54, 120, 0, 0, 0, 0, 0, 0), -('management', 121, 56, 'admin/config/system/site-information', 'admin/config/system/site-information', 'Site information', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a3130343a224368616e67652073697465206e616d652c20652d6d61696c20616464726573732c20736c6f67616e2c2064656661756c742066726f6e7420706167652c20616e64206e756d626572206f6620706f7374732070657220706167652c206572726f722070616765732e223b7d7d, 'system', 0, 0, 0, 0, -20, 4, 0, 1, 8, 56, 121, 0, 0, 0, 0, 0, 0), -('management', 122, 54, 'admin/appearance/settings/stark', 'admin/appearance/settings/stark', 'Stark', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 7, 54, 122, 0, 0, 0, 0, 0, 0), -('management', 123, 35, 'admin/config/content/formats', 'admin/config/content/formats', 'Text formats', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a3132373a22436f6e66696775726520686f7720636f6e74656e7420696e7075742062792075736572732069732066696c74657265642c20696e636c7564696e6720616c6c6f7765642048544d4c20746167732e20416c736f20616c6c6f777320656e61626c696e67206f66206d6f64756c652d70726f76696465642066696c746572732e223b7d7d, 'system', 0, 0, 1, 0, 0, 4, 0, 1, 8, 35, 123, 0, 0, 0, 0, 0, 0), -('management', 124, 32, 'admin/content/comment/approval', 'admin/content/comment/approval', 'Unapproved comments', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 9, 32, 124, 0, 0, 0, 0, 0, 0), -('management', 125, 60, 'admin/modules/uninstall/confirm', 'admin/modules/uninstall/confirm', 'Uninstall', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 16, 60, 125, 0, 0, 0, 0, 0, 0), -('navigation', 126, 40, 'user/%/edit/account', 'user/%/edit/account', 'Account', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 17, 40, 126, 0, 0, 0, 0, 0, 0, 0), -('management', 127, 123, 'admin/config/content/formats/%', 'admin/config/content/formats/%', '', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 0, 5, 0, 1, 8, 35, 123, 127, 0, 0, 0, 0, 0), -('management', 128, 105, 'admin/config/media/image-styles/add', 'admin/config/media/image-styles/add', 'Add style', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32323a224164642061206e657720696d616765207374796c652e223b7d7d, 'system', -1, 0, 0, 0, 2, 5, 0, 1, 8, 46, 105, 128, 0, 0, 0, 0, 0), -('management', 129, 89, 'admin/structure/taxonomy/%/add', 'admin/structure/taxonomy/%/add', 'Add term', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 57, 89, 129, 0, 0, 0, 0, 0), -('management', 130, 123, 'admin/config/content/formats/add', 'admin/config/content/formats/add', 'Add text format', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 1, 5, 0, 1, 8, 35, 123, 130, 0, 0, 0, 0, 0), -('management', 131, 30, 'admin/structure/block/list/bartik', 'admin/structure/block/list/bartik', 'Bartik', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 21, 30, 131, 0, 0, 0, 0, 0, 0), -('management', 132, 91, 'admin/config/system/actions/configure', 'admin/config/system/actions/configure', 'Configure an advanced action', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 8, 56, 91, 132, 0, 0, 0, 0, 0), -('management', 133, 47, 'admin/structure/menu/manage/%', 'admin/structure/menu/manage/%', 'Customize menu', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 0, 4, 0, 1, 21, 47, 133, 0, 0, 0, 0, 0, 0), -('management', 134, 89, 'admin/structure/taxonomy/%/edit', 'admin/structure/taxonomy/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 5, 0, 1, 21, 57, 89, 134, 0, 0, 0, 0, 0), -('management', 135, 36, 'admin/structure/types/manage/%', 'admin/structure/types/manage/%', 'Edit content type', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 0, 4, 0, 1, 21, 36, 135, 0, 0, 0, 0, 0, 0), -('management', 136, 99, 'admin/config/regional/date-time/formats', 'admin/config/regional/date-time/formats', 'Formats', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a35313a22436f6e66696775726520646973706c617920666f726d617420737472696e677320666f72206461746520616e642074696d652e223b7d7d, 'system', -1, 0, 1, 0, -9, 5, 0, 1, 8, 51, 99, 136, 0, 0, 0, 0, 0), -('management', 137, 30, 'admin/structure/block/list/garland', 'admin/structure/block/list/garland', 'Garland', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 21, 30, 137, 0, 0, 0, 0, 0, 0), -('management', 138, 123, 'admin/config/content/formats/list', 'admin/config/content/formats/list', 'List', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 8, 35, 123, 138, 0, 0, 0, 0, 0), -('management', 139, 89, 'admin/structure/taxonomy/%/list', 'admin/structure/taxonomy/%/list', 'List', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -20, 5, 0, 1, 21, 57, 89, 139, 0, 0, 0, 0, 0), -('management', 140, 105, 'admin/config/media/image-styles/list', 'admin/config/media/image-styles/list', 'List', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34323a224c697374207468652063757272656e7420696d616765207374796c6573206f6e2074686520736974652e223b7d7d, 'system', -1, 0, 0, 0, 1, 5, 0, 1, 8, 46, 105, 140, 0, 0, 0, 0, 0), -('management', 141, 91, 'admin/config/system/actions/manage', 'admin/config/system/actions/manage', 'Manage actions', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34313a224d616e6167652074686520616374696f6e7320646566696e656420666f7220796f757220736974652e223b7d7d, 'system', -1, 0, 0, 0, -2, 5, 0, 1, 8, 56, 91, 141, 0, 0, 0, 0, 0), -('management', 142, 90, 'admin/config/people/accounts/settings', 'admin/config/people/accounts/settings', 'Settings', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 5, 0, 1, 8, 48, 90, 142, 0, 0, 0, 0, 0), -('management', 143, 30, 'admin/structure/block/list/seven', 'admin/structure/block/list/seven', 'Seven', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 21, 30, 143, 0, 0, 0, 0, 0, 0), -('management', 144, 30, 'admin/structure/block/list/stark', 'admin/structure/block/list/stark', 'Stark', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 21, 30, 144, 0, 0, 0, 0, 0, 0), -('management', 145, 99, 'admin/config/regional/date-time/types', 'admin/config/regional/date-time/types', 'Types', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34343a22436f6e66696775726520646973706c617920666f726d61747320666f72206461746520616e642074696d652e223b7d7d, 'system', -1, 0, 1, 0, -10, 5, 0, 1, 8, 51, 99, 145, 0, 0, 0, 0, 0), -('navigation', 146, 52, 'node/%/revisions/%/delete', 'node/%/revisions/%/delete', 'Delete earlier revision', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 3, 0, 5, 52, 146, 0, 0, 0, 0, 0, 0, 0), -('navigation', 147, 52, 'node/%/revisions/%/revert', 'node/%/revisions/%/revert', 'Revert to earlier revision', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 3, 0, 5, 52, 147, 0, 0, 0, 0, 0, 0, 0), -('navigation', 148, 52, 'node/%/revisions/%/view', 'node/%/revisions/%/view', 'Revisions', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 3, 0, 5, 52, 148, 0, 0, 0, 0, 0, 0, 0), -('management', 149, 137, 'admin/structure/block/list/garland/add', 'admin/structure/block/list/garland/add', 'Add block', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 30, 137, 149, 0, 0, 0, 0, 0), -('management', 150, 143, 'admin/structure/block/list/seven/add', 'admin/structure/block/list/seven/add', 'Add block', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 30, 143, 150, 0, 0, 0, 0, 0), -('management', 151, 144, 'admin/structure/block/list/stark/add', 'admin/structure/block/list/stark/add', 'Add block', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 30, 144, 151, 0, 0, 0, 0, 0), -('management', 152, 145, 'admin/config/regional/date-time/types/add', 'admin/config/regional/date-time/types/add', 'Add date type', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a31383a22416464206e6577206461746520747970652e223b7d7d, 'system', -1, 0, 0, 0, -10, 6, 0, 1, 8, 51, 99, 145, 152, 0, 0, 0, 0), -('management', 153, 136, 'admin/config/regional/date-time/formats/add', 'admin/config/regional/date-time/formats/add', 'Add format', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34333a22416c6c6f7720757365727320746f20616464206164646974696f6e616c206461746520666f726d6174732e223b7d7d, 'system', -1, 0, 0, 0, -10, 6, 0, 1, 8, 51, 99, 136, 153, 0, 0, 0, 0), -('management', 154, 133, 'admin/structure/menu/manage/%/add', 'admin/structure/menu/manage/%/add', 'Add link', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 47, 133, 154, 0, 0, 0, 0, 0), -('management', 155, 30, 'admin/structure/block/manage/%/%', 'admin/structure/block/manage/%/%', 'Configure block', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 4, 0, 1, 21, 30, 155, 0, 0, 0, 0, 0, 0), -('navigation', 156, 31, 'user/%/cancel/confirm/%/%', 'user/%/cancel/confirm/%/%', 'Confirm account cancellation', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 3, 0, 17, 31, 156, 0, 0, 0, 0, 0, 0, 0), -('management', 157, 135, 'admin/structure/types/manage/%/delete', 'admin/structure/types/manage/%/delete', 'Delete', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 21, 36, 135, 157, 0, 0, 0, 0, 0), -('management', 158, 104, 'admin/config/people/ip-blocking/delete/%', 'admin/config/people/ip-blocking/delete/%', 'Delete IP address', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 8, 48, 104, 158, 0, 0, 0, 0, 0), -('management', 159, 91, 'admin/config/system/actions/delete/%', 'admin/config/system/actions/delete/%', 'Delete action', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a31373a2244656c65746520616e20616374696f6e2e223b7d7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 8, 56, 91, 159, 0, 0, 0, 0, 0), -('management', 160, 133, 'admin/structure/menu/manage/%/delete', 'admin/structure/menu/manage/%/delete', 'Delete menu', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 21, 47, 133, 160, 0, 0, 0, 0, 0), -('management', 161, 47, 'admin/structure/menu/item/%/delete', 'admin/structure/menu/item/%/delete', 'Delete menu link', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 4, 0, 1, 21, 47, 161, 0, 0, 0, 0, 0, 0), -('management', 162, 118, 'admin/people/permissions/roles/delete/%', 'admin/people/permissions/roles/delete/%', 'Delete role', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 18, 49, 118, 162, 0, 0, 0, 0, 0), -('management', 163, 127, 'admin/config/content/formats/%/disable', 'admin/config/content/formats/%/disable', 'Disable text format', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 8, 35, 123, 127, 163, 0, 0, 0, 0), -('management', 164, 135, 'admin/structure/types/manage/%/edit', 'admin/structure/types/manage/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 36, 135, 164, 0, 0, 0, 0, 0), -('management', 165, 133, 'admin/structure/menu/manage/%/edit', 'admin/structure/menu/manage/%/edit', 'Edit menu', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 47, 133, 165, 0, 0, 0, 0, 0), -('management', 166, 47, 'admin/structure/menu/item/%/edit', 'admin/structure/menu/item/%/edit', 'Edit menu link', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 4, 0, 1, 21, 47, 166, 0, 0, 0, 0, 0, 0), -('management', 167, 118, 'admin/people/permissions/roles/edit/%', 'admin/people/permissions/roles/edit/%', 'Edit role', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 18, 49, 118, 167, 0, 0, 0, 0, 0), -('management', 168, 105, 'admin/config/media/image-styles/edit/%', 'admin/config/media/image-styles/edit/%', 'Edit style', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32353a22436f6e66696775726520616e20696d616765207374796c652e223b7d7d, 'system', 0, 0, 1, 0, 0, 5, 0, 1, 8, 46, 105, 168, 0, 0, 0, 0, 0), -('management', 169, 133, 'admin/structure/menu/manage/%/list', 'admin/structure/menu/manage/%/list', 'List links', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 5, 0, 1, 21, 47, 133, 169, 0, 0, 0, 0, 0), -('management', 170, 47, 'admin/structure/menu/item/%/reset', 'admin/structure/menu/item/%/reset', 'Reset menu link', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 4, 0, 1, 21, 47, 170, 0, 0, 0, 0, 0, 0), -('management', 171, 105, 'admin/config/media/image-styles/delete/%', 'admin/config/media/image-styles/delete/%', 'Delete style', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32323a2244656c65746520616e20696d616765207374796c652e223b7d7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 8, 46, 105, 171, 0, 0, 0, 0, 0), -('management', 172, 105, 'admin/config/media/image-styles/revert/%', 'admin/config/media/image-styles/revert/%', 'Revert style', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32323a2252657665727420616e20696d616765207374796c652e223b7d7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 8, 46, 105, 172, 0, 0, 0, 0, 0), -('management', 173, 135, 'admin/structure/types/manage/%/comment/display', 'admin/structure/types/manage/%/comment/display', 'Comment display', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 4, 5, 0, 1, 21, 36, 135, 173, 0, 0, 0, 0, 0), -('management', 174, 135, 'admin/structure/types/manage/%/comment/fields', 'admin/structure/types/manage/%/comment/fields', 'Comment fields', 0x613a303a7b7d, 'system', -1, 0, 1, 0, 3, 5, 0, 1, 21, 36, 135, 174, 0, 0, 0, 0, 0), -('management', 175, 155, 'admin/structure/block/manage/%/%/configure', 'admin/structure/block/manage/%/%/configure', 'Configure block', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 30, 155, 175, 0, 0, 0, 0, 0), -('management', 176, 155, 'admin/structure/block/manage/%/%/delete', 'admin/structure/block/manage/%/%/delete', 'Delete block', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 30, 155, 176, 0, 0, 0, 0, 0), -('management', 177, 136, 'admin/config/regional/date-time/formats/%/delete', 'admin/config/regional/date-time/formats/%/delete', 'Delete date format', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34373a22416c6c6f7720757365727320746f2064656c657465206120636f6e66696775726564206461746520666f726d61742e223b7d7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 8, 51, 99, 136, 177, 0, 0, 0, 0), -('management', 178, 145, 'admin/config/regional/date-time/types/%/delete', 'admin/config/regional/date-time/types/%/delete', 'Delete date type', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34353a22416c6c6f7720757365727320746f2064656c657465206120636f6e66696775726564206461746520747970652e223b7d7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 8, 51, 99, 145, 178, 0, 0, 0, 0), -('management', 179, 136, 'admin/config/regional/date-time/formats/%/edit', 'admin/config/regional/date-time/formats/%/edit', 'Edit date format', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34353a22416c6c6f7720757365727320746f2065646974206120636f6e66696775726564206461746520666f726d61742e223b7d7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 8, 51, 99, 136, 179, 0, 0, 0, 0), -('management', 180, 168, 'admin/config/media/image-styles/edit/%/add/%', 'admin/config/media/image-styles/edit/%/add/%', 'Add image effect', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32383a224164642061206e65772065666665637420746f2061207374796c652e223b7d7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 8, 46, 105, 168, 180, 0, 0, 0, 0), -('management', 181, 168, 'admin/config/media/image-styles/edit/%/effects/%', 'admin/config/media/image-styles/edit/%/effects/%', 'Edit image effect', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33393a224564697420616e206578697374696e67206566666563742077697468696e2061207374796c652e223b7d7d, 'system', 0, 0, 1, 0, 0, 6, 0, 1, 8, 46, 105, 168, 181, 0, 0, 0, 0), -('management', 182, 181, 'admin/config/media/image-styles/edit/%/effects/%/delete', 'admin/config/media/image-styles/edit/%/effects/%/delete', 'Delete image effect', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33393a2244656c65746520616e206578697374696e67206566666563742066726f6d2061207374796c652e223b7d7d, 'system', 0, 0, 0, 0, 0, 7, 0, 1, 8, 46, 105, 168, 181, 182, 0, 0, 0), -('management', 183, 47, 'admin/structure/menu/manage/main-menu', 'admin/structure/menu/manage/%', 'Main menu', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, 0, 4, 0, 1, 21, 47, 183, 0, 0, 0, 0, 0, 0), -('management', 184, 47, 'admin/structure/menu/manage/management', 'admin/structure/menu/manage/%', 'Management', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, 0, 4, 0, 1, 21, 47, 184, 0, 0, 0, 0, 0, 0), -('management', 185, 47, 'admin/structure/menu/manage/navigation', 'admin/structure/menu/manage/%', 'Navigation', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, 0, 4, 0, 1, 21, 47, 185, 0, 0, 0, 0, 0, 0), -('management', 186, 47, 'admin/structure/menu/manage/user-menu', 'admin/structure/menu/manage/%', 'User menu', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, 0, 4, 0, 1, 21, 47, 186, 0, 0, 0, 0, 0, 0), -('navigation', 187, 0, 'search', 'search', 'Search', 0x613a303a7b7d, 'system', 1, 0, 0, 0, 0, 1, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 188, 187, 'search/node', 'search/node', 'Content', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 2, 0, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 189, 187, 'search/user', 'search/user', 'Users', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 2, 0, 187, 189, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 190, 188, 'search/node/%', 'search/node/%', 'Content', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 187, 188, 190, 0, 0, 0, 0, 0, 0, 0), -('navigation', 191, 17, 'user/%/shortcuts', 'user/%/shortcuts', 'Shortcuts', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 2, 0, 17, 191, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 192, 19, 'admin/reports/search', 'admin/reports/search', 'Top search phrases', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a33333a2256696577206d6f737420706f70756c61722073656172636820706872617365732e223b7d7d, 'system', 0, 0, 0, 0, 0, 3, 0, 1, 19, 192, 0, 0, 0, 0, 0, 0, 0), -('navigation', 193, 189, 'search/user/%', 'search/user/%', 'Users', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 187, 189, 193, 0, 0, 0, 0, 0, 0, 0), -('management', 194, 12, 'admin/help/number', 'admin/help/number', 'number', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 194, 0, 0, 0, 0, 0, 0, 0), -('management', 195, 12, 'admin/help/overlay', 'admin/help/overlay', 'overlay', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 195, 0, 0, 0, 0, 0, 0, 0), -('management', 196, 12, 'admin/help/path', 'admin/help/path', 'path', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 196, 0, 0, 0, 0, 0, 0, 0), -('management', 197, 12, 'admin/help/rdf', 'admin/help/rdf', 'rdf', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 197, 0, 0, 0, 0, 0, 0, 0), -('management', 198, 12, 'admin/help/search', 'admin/help/search', 'search', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 198, 0, 0, 0, 0, 0, 0, 0), -('management', 199, 12, 'admin/help/shortcut', 'admin/help/shortcut', 'shortcut', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 199, 0, 0, 0, 0, 0, 0, 0), -('management', 200, 53, 'admin/config/search/settings', 'admin/config/search/settings', 'Search settings', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a36373a22436f6e6669677572652072656c6576616e63652073657474696e677320666f722073656172636820616e64206f7468657220696e646578696e67206f7074696f6e732e223b7d7d, 'system', 0, 0, 0, 0, -10, 4, 0, 1, 8, 53, 200, 0, 0, 0, 0, 0, 0), -('management', 201, 61, 'admin/config/user-interface/shortcut', 'admin/config/user-interface/shortcut', 'Shortcuts', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32393a2241646420616e64206d6f646966792073686f727463757420736574732e223b7d7d, 'system', 0, 0, 1, 0, 0, 4, 0, 1, 8, 61, 201, 0, 0, 0, 0, 0, 0), -('management', 202, 53, 'admin/config/search/path', 'admin/config/search/path', 'URL aliases', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a34363a224368616e676520796f7572207369746527732055524c20706174687320627920616c696173696e67207468656d2e223b7d7d, 'system', 0, 0, 1, 0, -5, 4, 0, 1, 8, 53, 202, 0, 0, 0, 0, 0, 0), -('management', 203, 202, 'admin/config/search/path/add', 'admin/config/search/path/add', 'Add alias', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 8, 53, 202, 203, 0, 0, 0, 0, 0), -('management', 204, 201, 'admin/config/user-interface/shortcut/add-set', 'admin/config/user-interface/shortcut/add-set', 'Add shortcut set', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 8, 61, 201, 204, 0, 0, 0, 0, 0); -INSERT INTO `menu_links` (`menu_name`, `mlid`, `plid`, `link_path`, `router_path`, `link_title`, `options`, `module`, `hidden`, `external`, `has_children`, `expanded`, `weight`, `depth`, `customized`, `p1`, `p2`, `p3`, `p4`, `p5`, `p6`, `p7`, `p8`, `p9`, `updated`) VALUES -('management', 205, 200, 'admin/config/search/settings/reindex', 'admin/config/search/settings/reindex', 'Clear index', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 8, 53, 200, 205, 0, 0, 0, 0, 0), -('management', 206, 201, 'admin/config/user-interface/shortcut/%', 'admin/config/user-interface/shortcut/%', 'Edit shortcuts', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 0, 5, 0, 1, 8, 61, 201, 206, 0, 0, 0, 0, 0), -('management', 207, 202, 'admin/config/search/path/list', 'admin/config/search/path/list', 'List', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 5, 0, 1, 8, 53, 202, 207, 0, 0, 0, 0, 0), -('management', 208, 206, 'admin/config/user-interface/shortcut/%/add-link', 'admin/config/user-interface/shortcut/%/add-link', 'Add shortcut', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 6, 0, 1, 8, 61, 201, 206, 208, 0, 0, 0, 0), -('management', 209, 202, 'admin/config/search/path/delete/%', 'admin/config/search/path/delete/%', 'Delete alias', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 8, 53, 202, 209, 0, 0, 0, 0, 0), -('management', 210, 206, 'admin/config/user-interface/shortcut/%/delete', 'admin/config/user-interface/shortcut/%/delete', 'Delete shortcut set', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 8, 61, 201, 206, 210, 0, 0, 0, 0), -('management', 211, 202, 'admin/config/search/path/edit/%', 'admin/config/search/path/edit/%', 'Edit alias', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 5, 0, 1, 8, 53, 202, 211, 0, 0, 0, 0, 0), -('management', 212, 206, 'admin/config/user-interface/shortcut/%/edit', 'admin/config/user-interface/shortcut/%/edit', 'Edit set name', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 10, 6, 0, 1, 8, 61, 201, 206, 212, 0, 0, 0, 0), -('management', 213, 201, 'admin/config/user-interface/shortcut/link/%', 'admin/config/user-interface/shortcut/link/%', 'Edit shortcut', 0x613a303a7b7d, 'system', 0, 0, 1, 0, 0, 5, 0, 1, 8, 61, 201, 213, 0, 0, 0, 0, 0), -('management', 214, 206, 'admin/config/user-interface/shortcut/%/links', 'admin/config/user-interface/shortcut/%/links', 'List links', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 6, 0, 1, 8, 61, 201, 206, 214, 0, 0, 0, 0), -('management', 215, 213, 'admin/config/user-interface/shortcut/link/%/delete', 'admin/config/user-interface/shortcut/link/%/delete', 'Delete shortcut', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 8, 61, 201, 213, 215, 0, 0, 0, 0), -('shortcut-set-1', 216, 0, 'node/add', 'node/add', 'Add content', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, -50, 1, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('shortcut-set-1', 217, 0, 'admin/content', 'admin/content', 'Find content', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, -49, 1, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 218, 0, 'node/1', 'node/%', 'Pages', 0x613a313a7b733a31303a2261747472696275746573223b613a303a7b7d7d, 'menu', 0, 0, 1, 1, -50, 1, 1, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 219, 6, 'node/add/article', 'node/add/article', 'Article', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a38393a22557365203c656d3e61727469636c65733c2f656d3e20666f722074696d652d73656e73697469766520636f6e74656e74206c696b65206e6577732c2070726573732072656c6561736573206f7220626c6f6720706f7374732e223b7d7d, 'system', 0, 0, 0, 0, 0, 2, 0, 6, 219, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 220, 6, 'node/add/page', 'node/add/page', 'Basic page', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a37373a22557365203c656d3e62617369632070616765733c2f656d3e20666f7220796f75722073746174696320636f6e74656e742c207375636820617320616e202741626f75742075732720706167652e223b7d7d, 'system', 0, 0, 0, 0, 0, 2, 0, 6, 220, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 221, 12, 'admin/help/toolbar', 'admin/help/toolbar', 'toolbar', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 221, 0, 0, 0, 0, 0, 0, 0), -('management', 260, 19, 'admin/reports/updates', 'admin/reports/updates', 'Available updates', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a38323a22476574206120737461747573207265706f72742061626f757420617661696c61626c65207570646174657320666f7220796f757220696e7374616c6c6564206d6f64756c657320616e64207468656d65732e223b7d7d, 'system', 0, 0, 0, 0, -50, 3, 0, 1, 19, 260, 0, 0, 0, 0, 0, 0, 0), -('management', 261, 7, 'admin/appearance/install', 'admin/appearance/install', 'Install new theme', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 25, 3, 0, 1, 7, 261, 0, 0, 0, 0, 0, 0, 0), -('management', 262, 16, 'admin/modules/update', 'admin/modules/update', 'Update', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 10, 3, 0, 1, 16, 262, 0, 0, 0, 0, 0, 0, 0), -('management', 263, 16, 'admin/modules/install', 'admin/modules/install', 'Install new module', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 25, 3, 0, 1, 16, 263, 0, 0, 0, 0, 0, 0, 0), -('management', 264, 7, 'admin/appearance/update', 'admin/appearance/update', 'Update', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 10, 3, 0, 1, 7, 264, 0, 0, 0, 0, 0, 0, 0), -('management', 265, 12, 'admin/help/update', 'admin/help/update', 'update', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 265, 0, 0, 0, 0, 0, 0, 0), -('management', 266, 260, 'admin/reports/updates/install', 'admin/reports/updates/install', 'Install new module or theme', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 25, 4, 0, 1, 19, 260, 266, 0, 0, 0, 0, 0, 0), -('management', 267, 260, 'admin/reports/updates/update', 'admin/reports/updates/update', 'Update', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 10, 4, 0, 1, 19, 260, 267, 0, 0, 0, 0, 0, 0), -('management', 268, 260, 'admin/reports/updates/list', 'admin/reports/updates/list', 'List', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 19, 260, 268, 0, 0, 0, 0, 0, 0), -('management', 269, 260, 'admin/reports/updates/settings', 'admin/reports/updates/settings', 'Settings', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 50, 4, 0, 1, 19, 260, 269, 0, 0, 0, 0, 0, 0), -('management', 308, 54, 'admin/appearance/settings/simplecorp', 'admin/appearance/settings/simplecorp', 'SimpleCorp', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 4, 0, 1, 7, 54, 308, 0, 0, 0, 0, 0, 0), -('management', 309, 30, 'admin/structure/block/list/simplecorp', 'admin/structure/block/list/simplecorp', 'SimpleCorp', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 4, 0, 1, 21, 30, 309, 0, 0, 0, 0, 0, 0), -('management', 311, 131, 'admin/structure/block/list/bartik/add', 'admin/structure/block/list/bartik/add', 'Add block', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 5, 0, 1, 21, 30, 131, 311, 0, 0, 0, 0, 0), -('management', 312, 12, 'admin/help/php', 'admin/help/php', 'php', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 312, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 316, 0, 'blog', 'blog', 'Blog', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 1, 1, -47, 1, 1, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 321, 12, 'admin/help/superfish', 'admin/help/superfish', 'superfish', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 321, 0, 0, 0, 0, 0, 0, 0), -('management', 322, 61, 'admin/config/user-interface/superfish', 'admin/config/user-interface/superfish', 'Superfish', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a32353a22436f6e66696775726520537570657266697368204d656e7573223b7d7d, 'system', 0, 0, 0, 0, 0, 4, 0, 1, 8, 61, 322, 0, 0, 0, 0, 0, 0), -('navigation', 323, 0, 'contact', 'contact', 'Contact', 0x613a303a7b7d, 'system', 1, 0, 0, 0, 0, 1, 0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 324, 17, 'user/%/contact', 'user/%/contact', 'Contact', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 2, 2, 0, 17, 324, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 325, 21, 'admin/structure/contact', 'admin/structure/contact', 'Contact form', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a37313a2243726561746520612073797374656d20636f6e7461637420666f726d20616e64207365742075702063617465676f7269657320666f722074686520666f726d20746f207573652e223b7d7d, 'system', 0, 0, 1, 0, 0, 3, 0, 1, 21, 325, 0, 0, 0, 0, 0, 0, 0), -('management', 326, 12, 'admin/help/contact', 'admin/help/contact', 'contact', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 326, 0, 0, 0, 0, 0, 0, 0), -('management', 327, 325, 'admin/structure/contact/add', 'admin/structure/contact/add', 'Add category', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 1, 4, 0, 1, 21, 325, 327, 0, 0, 0, 0, 0, 0), -('management', 328, 325, 'admin/structure/contact/delete/%', 'admin/structure/contact/delete/%', 'Delete contact', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 4, 0, 1, 21, 325, 328, 0, 0, 0, 0, 0, 0), -('management', 329, 325, 'admin/structure/contact/edit/%', 'admin/structure/contact/edit/%', 'Edit contact category', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 4, 0, 1, 21, 325, 329, 0, 0, 0, 0, 0, 0), -('main-menu', 331, 0, 'contact', 'contact', 'Contact', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 0, 0, -45, 1, 1, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 332, 218, 'node/1', 'node/%', 'About Us', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 0, 0, 0, 2, 1, 218, 332, 0, 0, 0, 0, 0, 0, 0, 0), -('shortcut-set-1', 333, 0, 'admin/structure/block', 'admin/structure/block', 'Blocks', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, -48, 1, 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 334, 0, 'blog', 'blog', 'Blogs', 0x613a303a7b7d, 'system', 1, 0, 1, 0, 0, 1, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 335, 334, 'blog/%', 'blog/%', 'My blog', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 2, 0, 334, 335, 0, 0, 0, 0, 0, 0, 0, 0), -('navigation', 336, 6, 'node/add/blog', 'node/add/blog', 'Blog entry', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a35383a2255736520666f72206d756c74692d7573657220626c6f67732e20457665727920757365722067657473206120706572736f6e616c20626c6f672e223b7d7d, 'system', 0, 0, 0, 0, 0, 2, 0, 6, 336, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 337, 12, 'admin/help/blog', 'admin/help/blog', 'blog', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 3, 0, 1, 12, 337, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 338, 316, 'taxonomy/term/4', 'taxonomy/term/%', 'News', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 0, 0, -50, 2, 1, 316, 338, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 339, 316, 'taxonomy/term/5', 'taxonomy/term/%', 'Events', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 0, 0, -49, 2, 1, 316, 339, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 340, 218, 'node/8', 'node/%', 'Typography', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, 0, 2, 0, 218, 340, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 341, 343, 'node/9', 'node/%', 'Columns', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, -50, 2, 1, 343, 341, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 342, 343, 'node/10', 'node/%', 'Lists Styles', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, -49, 2, 1, 343, 342, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 343, 0, 'node/10', 'node/%', 'Shortcodes', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 1, 1, -46, 1, 1, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 344, 343, 'node/11', 'node/%', 'Message Boxes', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, 0, 2, 0, 343, 344, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 345, 347, 'node/12', 'node/%', 'Portofolio with Sidebar', 0x613a313a7b733a31303a2261747472696275746573223b613a303a7b7d7d, 'menu', 0, 0, 1, 0, -49, 2, 1, 347, 345, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 346, 347, 'node/13', 'node/%', 'Portofolio Full Width', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, -50, 2, 1, 347, 346, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 347, 0, 'node/13', 'node/%', 'Portofolio', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 1, 1, -49, 1, 1, 347, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('main-menu', 348, 343, 'node/19', 'node/%', 'Dropcaps & Alerts', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, 0, 2, 0, 343, 348, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 349, 47, 'admin/structure/menu/manage/menu-bottom-footer-menu', 'admin/structure/menu/manage/%', 'Bottom Footer Menu', 0x613a303a7b7d, 'menu', 0, 0, 0, 0, 0, 4, 0, 1, 21, 47, 349, 0, 0, 0, 0, 0, 0), -('menu-bottom-footer-menu', 350, 0, 'node/1', 'node/%', 'Pages', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 0, 1, 0, 1, 1, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('menu-bottom-footer-menu', 351, 0, 'node/13', 'node/%', 'Portofolio', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 0, 1, 0, 1, 1, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('menu-bottom-footer-menu', 352, 0, 'blog', 'blog', 'Blog', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 0, 1, 0, 1, 1, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('menu-bottom-footer-menu', 353, 0, 'node/10', 'node/%', 'Shortcodes', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 0, 1, 0, 1, 1, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('menu-bottom-footer-menu', 354, 0, 'contact', 'contact', 'Contact', 0x613a313a7b733a31303a2261747472696275746573223b613a313a7b733a353a227469746c65223b733a303a22223b7d7d, 'menu', 0, 0, 0, 1, 0, 1, 1, 354, 0, 0, 0, 0, 0, 0, 0, 0, 0), -('management', 355, 89, 'admin/structure/taxonomy/%/display', 'admin/structure/taxonomy/%/display', 'Manage display', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 2, 5, 0, 1, 21, 57, 89, 355, 0, 0, 0, 0, 0), -('management', 356, 90, 'admin/config/people/accounts/display', 'admin/config/people/accounts/display', 'Manage display', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 2, 5, 0, 1, 8, 48, 90, 356, 0, 0, 0, 0, 0), -('management', 357, 89, 'admin/structure/taxonomy/%/fields', 'admin/structure/taxonomy/%/fields', 'Manage fields', 0x613a303a7b7d, 'system', -1, 0, 1, 0, 1, 5, 0, 1, 21, 57, 89, 357, 0, 0, 0, 0, 0), -('management', 358, 90, 'admin/config/people/accounts/fields', 'admin/config/people/accounts/fields', 'Manage fields', 0x613a303a7b7d, 'system', -1, 0, 1, 0, 1, 5, 0, 1, 8, 48, 90, 358, 0, 0, 0, 0, 0), -('management', 359, 355, 'admin/structure/taxonomy/%/display/default', 'admin/structure/taxonomy/%/display/default', 'Default', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 6, 0, 1, 21, 57, 89, 355, 359, 0, 0, 0, 0), -('management', 360, 356, 'admin/config/people/accounts/display/default', 'admin/config/people/accounts/display/default', 'Default', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 6, 0, 1, 8, 48, 90, 356, 360, 0, 0, 0, 0), -('management', 361, 135, 'admin/structure/types/manage/%/display', 'admin/structure/types/manage/%/display', 'Manage display', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 2, 5, 0, 1, 21, 36, 135, 361, 0, 0, 0, 0, 0), -('management', 362, 135, 'admin/structure/types/manage/%/fields', 'admin/structure/types/manage/%/fields', 'Manage fields', 0x613a303a7b7d, 'system', -1, 0, 1, 0, 1, 5, 0, 1, 21, 36, 135, 362, 0, 0, 0, 0, 0), -('management', 363, 355, 'admin/structure/taxonomy/%/display/full', 'admin/structure/taxonomy/%/display/full', 'Taxonomy term page', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 6, 0, 1, 21, 57, 89, 355, 363, 0, 0, 0, 0), -('management', 364, 356, 'admin/config/people/accounts/display/full', 'admin/config/people/accounts/display/full', 'User account', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 6, 0, 1, 8, 48, 90, 356, 364, 0, 0, 0, 0), -('management', 365, 357, 'admin/structure/taxonomy/%/fields/%', 'admin/structure/taxonomy/%/fields/%', '', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 21, 57, 89, 357, 365, 0, 0, 0, 0), -('management', 366, 358, 'admin/config/people/accounts/fields/%', 'admin/config/people/accounts/fields/%', '', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 8, 48, 90, 358, 366, 0, 0, 0, 0), -('management', 367, 361, 'admin/structure/types/manage/%/display/default', 'admin/structure/types/manage/%/display/default', 'Default', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 6, 0, 1, 21, 36, 135, 361, 367, 0, 0, 0, 0), -('management', 368, 361, 'admin/structure/types/manage/%/display/full', 'admin/structure/types/manage/%/display/full', 'Full content', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 6, 0, 1, 21, 36, 135, 361, 368, 0, 0, 0, 0), -('management', 369, 361, 'admin/structure/types/manage/%/display/rss', 'admin/structure/types/manage/%/display/rss', 'RSS', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 2, 6, 0, 1, 21, 36, 135, 361, 369, 0, 0, 0, 0), -('management', 370, 361, 'admin/structure/types/manage/%/display/search_index', 'admin/structure/types/manage/%/display/search_index', 'Search index', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 3, 6, 0, 1, 21, 36, 135, 361, 370, 0, 0, 0, 0), -('management', 371, 361, 'admin/structure/types/manage/%/display/search_result', 'admin/structure/types/manage/%/display/search_result', 'Search result', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 4, 6, 0, 1, 21, 36, 135, 361, 371, 0, 0, 0, 0), -('management', 372, 361, 'admin/structure/types/manage/%/display/teaser', 'admin/structure/types/manage/%/display/teaser', 'Teaser', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 1, 6, 0, 1, 21, 36, 135, 361, 372, 0, 0, 0, 0), -('management', 373, 362, 'admin/structure/types/manage/%/fields/%', 'admin/structure/types/manage/%/fields/%', '', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 21, 36, 135, 362, 373, 0, 0, 0, 0), -('management', 374, 365, 'admin/structure/taxonomy/%/fields/%/delete', 'admin/structure/taxonomy/%/fields/%/delete', 'Delete', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 10, 7, 0, 1, 21, 57, 89, 357, 365, 374, 0, 0, 0), -('management', 375, 365, 'admin/structure/taxonomy/%/fields/%/edit', 'admin/structure/taxonomy/%/fields/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 21, 57, 89, 357, 365, 375, 0, 0, 0), -('management', 376, 365, 'admin/structure/taxonomy/%/fields/%/field-settings', 'admin/structure/taxonomy/%/fields/%/field-settings', 'Field settings', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 21, 57, 89, 357, 365, 376, 0, 0, 0), -('management', 377, 365, 'admin/structure/taxonomy/%/fields/%/widget-type', 'admin/structure/taxonomy/%/fields/%/widget-type', 'Widget type', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 21, 57, 89, 357, 365, 377, 0, 0, 0), -('management', 378, 366, 'admin/config/people/accounts/fields/%/delete', 'admin/config/people/accounts/fields/%/delete', 'Delete', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 10, 7, 0, 1, 8, 48, 90, 358, 366, 378, 0, 0, 0), -('management', 379, 366, 'admin/config/people/accounts/fields/%/edit', 'admin/config/people/accounts/fields/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 8, 48, 90, 358, 366, 379, 0, 0, 0), -('management', 380, 366, 'admin/config/people/accounts/fields/%/field-settings', 'admin/config/people/accounts/fields/%/field-settings', 'Field settings', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 8, 48, 90, 358, 366, 380, 0, 0, 0), -('management', 381, 366, 'admin/config/people/accounts/fields/%/widget-type', 'admin/config/people/accounts/fields/%/widget-type', 'Widget type', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 8, 48, 90, 358, 366, 381, 0, 0, 0), -('management', 382, 173, 'admin/structure/types/manage/%/comment/display/default', 'admin/structure/types/manage/%/comment/display/default', 'Default', 0x613a303a7b7d, 'system', -1, 0, 0, 0, -10, 6, 0, 1, 21, 36, 135, 173, 382, 0, 0, 0, 0), -('management', 383, 173, 'admin/structure/types/manage/%/comment/display/full', 'admin/structure/types/manage/%/comment/display/full', 'Full comment', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 6, 0, 1, 21, 36, 135, 173, 383, 0, 0, 0, 0), -('management', 384, 373, 'admin/structure/types/manage/%/fields/%/delete', 'admin/structure/types/manage/%/fields/%/delete', 'Delete', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 10, 7, 0, 1, 21, 36, 135, 362, 373, 384, 0, 0, 0), -('management', 385, 174, 'admin/structure/types/manage/%/comment/fields/%', 'admin/structure/types/manage/%/comment/fields/%', '', 0x613a303a7b7d, 'system', 0, 0, 0, 0, 0, 6, 0, 1, 21, 36, 135, 174, 385, 0, 0, 0, 0), -('management', 386, 373, 'admin/structure/types/manage/%/fields/%/edit', 'admin/structure/types/manage/%/fields/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 21, 36, 135, 362, 373, 386, 0, 0, 0), -('management', 387, 373, 'admin/structure/types/manage/%/fields/%/field-settings', 'admin/structure/types/manage/%/fields/%/field-settings', 'Field settings', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 21, 36, 135, 362, 373, 387, 0, 0, 0), -('management', 388, 373, 'admin/structure/types/manage/%/fields/%/widget-type', 'admin/structure/types/manage/%/fields/%/widget-type', 'Widget type', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 21, 36, 135, 362, 373, 388, 0, 0, 0), -('management', 389, 385, 'admin/structure/types/manage/%/comment/fields/%/delete', 'admin/structure/types/manage/%/comment/fields/%/delete', 'Delete', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 10, 7, 0, 1, 21, 36, 135, 174, 385, 389, 0, 0, 0), -('management', 390, 385, 'admin/structure/types/manage/%/comment/fields/%/edit', 'admin/structure/types/manage/%/comment/fields/%/edit', 'Edit', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 21, 36, 135, 174, 385, 390, 0, 0, 0), -('management', 391, 385, 'admin/structure/types/manage/%/comment/fields/%/field-settings', 'admin/structure/types/manage/%/comment/fields/%/field-settings', 'Field settings', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 21, 36, 135, 174, 385, 391, 0, 0, 0), -('management', 392, 385, 'admin/structure/types/manage/%/comment/fields/%/widget-type', 'admin/structure/types/manage/%/comment/fields/%/widget-type', 'Widget type', 0x613a303a7b7d, 'system', -1, 0, 0, 0, 0, 7, 0, 1, 21, 36, 135, 174, 385, 392, 0, 0, 0); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `menu_router` --- - -CREATE TABLE IF NOT EXISTS `menu_router` ( +) ENGINE=InnoDB AUTO_INCREMENT=397 DEFAULT CHARSET=utf8 COMMENT='Contains the individual links within a menu.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `menu_links` +-- + +LOCK TABLES `menu_links` WRITE; +/*!40000 ALTER TABLE `menu_links` DISABLE KEYS */; +INSERT INTO `menu_links` VALUES ('management',1,0,'admin','admin','Administration','a:0:{}','system',0,0,1,0,9,1,0,1,0,0,0,0,0,0,0,0,0),('user-menu',2,0,'user','user','User account','a:1:{s:5:\"alter\";b:1;}','system',0,0,0,0,-10,1,0,2,0,0,0,0,0,0,0,0,0),('navigation',3,0,'comment/%','comment/%','Comment permalink','a:0:{}','system',0,0,1,0,0,1,0,3,0,0,0,0,0,0,0,0,0),('navigation',4,0,'filter/tips','filter/tips','Compose tips','a:0:{}','system',1,0,1,0,0,1,0,4,0,0,0,0,0,0,0,0,0),('navigation',5,0,'node/%','node/%','','a:0:{}','system',0,0,0,0,0,1,0,5,0,0,0,0,0,0,0,0,0),('navigation',6,0,'node/add','node/add','Add content','a:0:{}','system',0,0,1,0,0,1,0,6,0,0,0,0,0,0,0,0,0),('management',7,1,'admin/appearance','admin/appearance','Appearance','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:33:\"Select and configure your themes.\";}}','system',0,0,0,0,-6,2,0,1,7,0,0,0,0,0,0,0,0),('management',8,1,'admin/config','admin/config','Configuration','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:20:\"Administer settings.\";}}','system',0,0,1,0,0,2,0,1,8,0,0,0,0,0,0,0,0),('management',9,1,'admin/content','admin/content','Content','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:32:\"Administer content and comments.\";}}','system',0,0,1,0,-10,2,0,1,9,0,0,0,0,0,0,0,0),('user-menu',10,2,'user/register','user/register','Create new account','a:0:{}','system',-1,0,0,0,0,2,0,2,10,0,0,0,0,0,0,0,0),('management',11,1,'admin/dashboard','admin/dashboard','Dashboard','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:34:\"View and customize your dashboard.\";}}','system',0,0,0,0,-15,2,0,1,11,0,0,0,0,0,0,0,0),('management',12,1,'admin/help','admin/help','Help','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:48:\"Reference for usage, configuration, and modules.\";}}','system',0,0,0,0,9,2,0,1,12,0,0,0,0,0,0,0,0),('management',13,1,'admin/index','admin/index','Index','a:0:{}','system',-1,0,0,0,-18,2,0,1,13,0,0,0,0,0,0,0,0),('user-menu',14,2,'user/login','user/login','Log in','a:0:{}','system',-1,0,0,0,0,2,0,2,14,0,0,0,0,0,0,0,0),('user-menu',15,0,'user/logout','user/logout','Log out','a:0:{}','system',0,0,0,0,10,1,0,15,0,0,0,0,0,0,0,0,0),('management',16,1,'admin/modules','admin/modules','Modules','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:26:\"Extend site functionality.\";}}','system',0,0,0,0,-2,2,0,1,16,0,0,0,0,0,0,0,0),('navigation',17,0,'user/%','user/%','My account','a:0:{}','system',0,0,1,0,0,1,0,17,0,0,0,0,0,0,0,0,0),('management',18,1,'admin/people','admin/people','People','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:45:\"Manage user accounts, roles, and permissions.\";}}','system',0,0,0,0,-4,2,0,1,18,0,0,0,0,0,0,0,0),('management',19,1,'admin/reports','admin/reports','Reports','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:34:\"View reports, updates, and errors.\";}}','system',0,0,1,0,5,2,0,1,19,0,0,0,0,0,0,0,0),('user-menu',20,2,'user/password','user/password','Request new password','a:0:{}','system',-1,0,0,0,0,2,0,2,20,0,0,0,0,0,0,0,0),('management',21,1,'admin/structure','admin/structure','Structure','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:45:\"Administer blocks, content types, menus, etc.\";}}','system',0,0,1,0,-8,2,0,1,21,0,0,0,0,0,0,0,0),('management',22,1,'admin/tasks','admin/tasks','Tasks','a:0:{}','system',-1,0,0,0,-20,2,0,1,22,0,0,0,0,0,0,0,0),('navigation',23,0,'comment/reply/%','comment/reply/%','Add new comment','a:0:{}','system',0,0,0,0,0,1,0,23,0,0,0,0,0,0,0,0,0),('navigation',24,3,'comment/%/approve','comment/%/approve','Approve','a:0:{}','system',0,0,0,0,1,2,0,3,24,0,0,0,0,0,0,0,0),('navigation',25,3,'comment/%/delete','comment/%/delete','Delete','a:0:{}','system',-1,0,0,0,2,2,0,3,25,0,0,0,0,0,0,0,0),('navigation',26,3,'comment/%/edit','comment/%/edit','Edit','a:0:{}','system',-1,0,0,0,0,2,0,3,26,0,0,0,0,0,0,0,0),('navigation',27,0,'taxonomy/term/%','taxonomy/term/%','Taxonomy term','a:0:{}','system',0,0,0,0,0,1,0,27,0,0,0,0,0,0,0,0,0),('navigation',28,3,'comment/%/view','comment/%/view','View comment','a:0:{}','system',-1,0,0,0,-10,2,0,3,28,0,0,0,0,0,0,0,0),('management',29,18,'admin/people/create','admin/people/create','Add user','a:0:{}','system',-1,0,0,0,0,3,0,1,18,29,0,0,0,0,0,0,0),('management',30,21,'admin/structure/block','admin/structure/block','Blocks','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:79:\"Configure what block content appears in your site\'s sidebars and other regions.\";}}','system',0,0,1,0,0,3,0,1,21,30,0,0,0,0,0,0,0),('navigation',31,17,'user/%/cancel','user/%/cancel','Cancel account','a:0:{}','system',0,0,1,0,0,2,0,17,31,0,0,0,0,0,0,0,0),('management',32,9,'admin/content/comment','admin/content/comment','Comments','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:59:\"List and edit site comments and the comment approval queue.\";}}','system',0,0,0,0,0,3,0,1,9,32,0,0,0,0,0,0,0),('management',33,11,'admin/dashboard/configure','admin/dashboard/configure','Configure available dashboard blocks','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:53:\"Configure which blocks can be shown on the dashboard.\";}}','system',-1,0,0,0,0,3,0,1,11,33,0,0,0,0,0,0,0),('management',34,9,'admin/content/node','admin/content/node','Content','a:0:{}','system',-1,0,0,0,-10,3,0,1,9,34,0,0,0,0,0,0,0),('management',35,8,'admin/config/content','admin/config/content','Content authoring','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:53:\"Settings related to formatting and authoring content.\";}}','system',0,0,1,0,-15,3,0,1,8,35,0,0,0,0,0,0,0),('management',36,21,'admin/structure/types','admin/structure/types','Content types','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:92:\"Manage content types, including default status, front page promotion, comment settings, etc.\";}}','system',0,0,1,0,0,3,0,1,21,36,0,0,0,0,0,0,0),('management',37,11,'admin/dashboard/customize','admin/dashboard/customize','Customize dashboard','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:25:\"Customize your dashboard.\";}}','system',-1,0,0,0,0,3,0,1,11,37,0,0,0,0,0,0,0),('navigation',38,5,'node/%/delete','node/%/delete','Delete','a:0:{}','system',-1,0,0,0,1,2,0,5,38,0,0,0,0,0,0,0,0),('management',39,8,'admin/config/development','admin/config/development','Development','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:18:\"Development tools.\";}}','system',0,0,1,0,-10,3,0,1,8,39,0,0,0,0,0,0,0),('navigation',40,17,'user/%/edit','user/%/edit','Edit','a:0:{}','system',-1,0,0,0,0,2,0,17,40,0,0,0,0,0,0,0,0),('navigation',41,5,'node/%/edit','node/%/edit','Edit','a:0:{}','system',-1,0,0,0,0,2,0,5,41,0,0,0,0,0,0,0,0),('management',42,19,'admin/reports/fields','admin/reports/fields','Field list','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:39:\"Overview of fields on all entity types.\";}}','system',0,0,0,0,0,3,0,1,19,42,0,0,0,0,0,0,0),('management',43,7,'admin/appearance/list','admin/appearance/list','List','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:31:\"Select and configure your theme\";}}','system',-1,0,0,0,-1,3,0,1,7,43,0,0,0,0,0,0,0),('management',44,16,'admin/modules/list','admin/modules/list','List','a:0:{}','system',-1,0,0,0,0,3,0,1,16,44,0,0,0,0,0,0,0),('management',45,18,'admin/people/people','admin/people/people','List','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:50:\"Find and manage people interacting with your site.\";}}','system',-1,0,0,0,-10,3,0,1,18,45,0,0,0,0,0,0,0),('management',46,8,'admin/config/media','admin/config/media','Media','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:12:\"Media tools.\";}}','system',0,0,1,0,-10,3,0,1,8,46,0,0,0,0,0,0,0),('management',47,21,'admin/structure/menu','admin/structure/menu','Menus','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:86:\"Add new menus to your site, edit existing menus, and rename and reorganize menu links.\";}}','system',0,0,1,0,0,3,0,1,21,47,0,0,0,0,0,0,0),('management',48,8,'admin/config/people','admin/config/people','People','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:24:\"Configure user accounts.\";}}','system',0,0,1,0,-20,3,0,1,8,48,0,0,0,0,0,0,0),('management',49,18,'admin/people/permissions','admin/people/permissions','Permissions','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:64:\"Determine access to features by selecting permissions for roles.\";}}','system',-1,0,0,0,0,3,0,1,18,49,0,0,0,0,0,0,0),('management',50,19,'admin/reports/dblog','admin/reports/dblog','Recent log messages','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:43:\"View events that have recently been logged.\";}}','system',0,0,0,0,-1,3,0,1,19,50,0,0,0,0,0,0,0),('management',51,8,'admin/config/regional','admin/config/regional','Regional and language','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:48:\"Regional settings, localization and translation.\";}}','system',0,0,1,0,-5,3,0,1,8,51,0,0,0,0,0,0,0),('navigation',52,5,'node/%/revisions','node/%/revisions','Revisions','a:0:{}','system',-1,0,1,0,2,2,0,5,52,0,0,0,0,0,0,0,0),('management',53,8,'admin/config/search','admin/config/search','Search and metadata','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:36:\"Local site search, metadata and SEO.\";}}','system',0,0,1,0,-10,3,0,1,8,53,0,0,0,0,0,0,0),('management',54,7,'admin/appearance/settings','admin/appearance/settings','Settings','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:46:\"Configure default and theme specific settings.\";}}','system',-1,0,0,0,20,3,0,1,7,54,0,0,0,0,0,0,0),('management',55,19,'admin/reports/status','admin/reports/status','Status report','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:74:\"Get a status report about your site\'s operation and any detected problems.\";}}','system',0,0,0,0,-60,3,0,1,19,55,0,0,0,0,0,0,0),('management',56,8,'admin/config/system','admin/config/system','System','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:37:\"General system related configuration.\";}}','system',0,0,1,0,-20,3,0,1,8,56,0,0,0,0,0,0,0),('management',57,21,'admin/structure/taxonomy','admin/structure/taxonomy','Taxonomy','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:67:\"Manage tagging, categorization, and classification of your content.\";}}','system',0,0,1,0,0,3,0,1,21,57,0,0,0,0,0,0,0),('management',58,19,'admin/reports/access-denied','admin/reports/access-denied','Top \'access denied\' errors','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:35:\"View \'access denied\' errors (403s).\";}}','system',0,0,0,0,0,3,0,1,19,58,0,0,0,0,0,0,0),('management',59,19,'admin/reports/page-not-found','admin/reports/page-not-found','Top \'page not found\' errors','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:36:\"View \'page not found\' errors (404s).\";}}','system',0,0,0,0,0,3,0,1,19,59,0,0,0,0,0,0,0),('management',60,16,'admin/modules/uninstall','admin/modules/uninstall','Uninstall','a:0:{}','system',-1,0,0,0,20,3,0,1,16,60,0,0,0,0,0,0,0),('management',61,8,'admin/config/user-interface','admin/config/user-interface','User interface','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:38:\"Tools that enhance the user interface.\";}}','system',0,0,1,0,-15,3,0,1,8,61,0,0,0,0,0,0,0),('navigation',62,5,'node/%/view','node/%/view','View','a:0:{}','system',-1,0,0,0,-10,2,0,5,62,0,0,0,0,0,0,0,0),('navigation',63,17,'user/%/view','user/%/view','View','a:0:{}','system',-1,0,0,0,-10,2,0,17,63,0,0,0,0,0,0,0,0),('management',64,8,'admin/config/services','admin/config/services','Web services','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:30:\"Tools related to web services.\";}}','system',0,0,1,0,0,3,0,1,8,64,0,0,0,0,0,0,0),('management',65,8,'admin/config/workflow','admin/config/workflow','Workflow','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:43:\"Content workflow, editorial workflow tools.\";}}','system',0,0,0,0,5,3,0,1,8,65,0,0,0,0,0,0,0),('management',66,12,'admin/help/block','admin/help/block','block','a:0:{}','system',-1,0,0,0,0,3,0,1,12,66,0,0,0,0,0,0,0),('management',67,12,'admin/help/color','admin/help/color','color','a:0:{}','system',-1,0,0,0,0,3,0,1,12,67,0,0,0,0,0,0,0),('management',68,12,'admin/help/comment','admin/help/comment','comment','a:0:{}','system',-1,0,0,0,0,3,0,1,12,68,0,0,0,0,0,0,0),('management',69,12,'admin/help/contextual','admin/help/contextual','contextual','a:0:{}','system',-1,0,0,0,0,3,0,1,12,69,0,0,0,0,0,0,0),('management',70,12,'admin/help/dashboard','admin/help/dashboard','dashboard','a:0:{}','system',-1,0,0,0,0,3,0,1,12,70,0,0,0,0,0,0,0),('management',71,12,'admin/help/dblog','admin/help/dblog','dblog','a:0:{}','system',-1,0,0,0,0,3,0,1,12,71,0,0,0,0,0,0,0),('management',72,12,'admin/help/field','admin/help/field','field','a:0:{}','system',-1,0,0,0,0,3,0,1,12,72,0,0,0,0,0,0,0),('management',73,12,'admin/help/field_sql_storage','admin/help/field_sql_storage','field_sql_storage','a:0:{}','system',-1,0,0,0,0,3,0,1,12,73,0,0,0,0,0,0,0),('management',74,12,'admin/help/field_ui','admin/help/field_ui','field_ui','a:0:{}','system',-1,0,0,0,0,3,0,1,12,74,0,0,0,0,0,0,0),('management',75,12,'admin/help/file','admin/help/file','file','a:0:{}','system',-1,0,0,0,0,3,0,1,12,75,0,0,0,0,0,0,0),('management',76,12,'admin/help/filter','admin/help/filter','filter','a:0:{}','system',-1,0,0,0,0,3,0,1,12,76,0,0,0,0,0,0,0),('management',77,12,'admin/help/help','admin/help/help','help','a:0:{}','system',-1,0,0,0,0,3,0,1,12,77,0,0,0,0,0,0,0),('management',78,12,'admin/help/image','admin/help/image','image','a:0:{}','system',-1,0,0,0,0,3,0,1,12,78,0,0,0,0,0,0,0),('management',79,12,'admin/help/list','admin/help/list','list','a:0:{}','system',-1,0,0,0,0,3,0,1,12,79,0,0,0,0,0,0,0),('management',80,12,'admin/help/menu','admin/help/menu','menu','a:0:{}','system',-1,0,0,0,0,3,0,1,12,80,0,0,0,0,0,0,0),('management',81,12,'admin/help/node','admin/help/node','node','a:0:{}','system',-1,0,0,0,0,3,0,1,12,81,0,0,0,0,0,0,0),('management',82,12,'admin/help/options','admin/help/options','options','a:0:{}','system',-1,0,0,0,0,3,0,1,12,82,0,0,0,0,0,0,0),('management',83,12,'admin/help/system','admin/help/system','system','a:0:{}','system',-1,0,0,0,0,3,0,1,12,83,0,0,0,0,0,0,0),('management',84,12,'admin/help/taxonomy','admin/help/taxonomy','taxonomy','a:0:{}','system',-1,0,0,0,0,3,0,1,12,84,0,0,0,0,0,0,0),('management',85,12,'admin/help/text','admin/help/text','text','a:0:{}','system',-1,0,0,0,0,3,0,1,12,85,0,0,0,0,0,0,0),('management',86,12,'admin/help/user','admin/help/user','user','a:0:{}','system',-1,0,0,0,0,3,0,1,12,86,0,0,0,0,0,0,0),('navigation',87,27,'taxonomy/term/%/edit','taxonomy/term/%/edit','Edit','a:0:{}','system',-1,0,0,0,10,2,0,27,87,0,0,0,0,0,0,0,0),('navigation',88,27,'taxonomy/term/%/view','taxonomy/term/%/view','View','a:0:{}','system',-1,0,0,0,0,2,0,27,88,0,0,0,0,0,0,0,0),('management',89,57,'admin/structure/taxonomy/%','admin/structure/taxonomy/%','','a:0:{}','system',0,0,0,0,0,4,0,1,21,57,89,0,0,0,0,0,0),('management',90,48,'admin/config/people/accounts','admin/config/people/accounts','Account settings','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:109:\"Configure default behavior of users, including registration requirements, e-mails, fields, and user pictures.\";}}','system',0,0,0,0,-10,4,0,1,8,48,90,0,0,0,0,0,0),('management',91,56,'admin/config/system/actions','admin/config/system/actions','Actions','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:41:\"Manage the actions defined for your site.\";}}','system',0,0,1,0,0,4,0,1,8,56,91,0,0,0,0,0,0),('management',92,30,'admin/structure/block/add','admin/structure/block/add','Add block','a:0:{}','system',-1,0,0,0,0,4,0,1,21,30,92,0,0,0,0,0,0),('management',93,36,'admin/structure/types/add','admin/structure/types/add','Add content type','a:0:{}','system',-1,0,0,0,0,4,0,1,21,36,93,0,0,0,0,0,0),('management',94,47,'admin/structure/menu/add','admin/structure/menu/add','Add menu','a:0:{}','system',-1,0,0,0,0,4,0,1,21,47,94,0,0,0,0,0,0),('management',95,57,'admin/structure/taxonomy/add','admin/structure/taxonomy/add','Add vocabulary','a:0:{}','system',-1,0,0,0,0,4,0,1,21,57,95,0,0,0,0,0,0),('management',96,54,'admin/appearance/settings/bartik','admin/appearance/settings/bartik','Bartik','a:0:{}','system',-1,0,0,0,0,4,0,1,7,54,96,0,0,0,0,0,0),('management',97,53,'admin/config/search/clean-urls','admin/config/search/clean-urls','Clean URLs','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:43:\"Enable or disable clean URLs for your site.\";}}','system',0,0,0,0,5,4,0,1,8,53,97,0,0,0,0,0,0),('management',98,56,'admin/config/system/cron','admin/config/system/cron','Cron','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:40:\"Manage automatic site maintenance tasks.\";}}','system',0,0,0,0,20,4,0,1,8,56,98,0,0,0,0,0,0),('management',99,51,'admin/config/regional/date-time','admin/config/regional/date-time','Date and time','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:44:\"Configure display formats for date and time.\";}}','system',0,0,0,0,-15,4,0,1,8,51,99,0,0,0,0,0,0),('management',100,19,'admin/reports/event/%','admin/reports/event/%','Details','a:0:{}','system',0,0,0,0,0,3,0,1,19,100,0,0,0,0,0,0,0),('management',101,46,'admin/config/media/file-system','admin/config/media/file-system','File system','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:68:\"Tell Drupal where to store uploaded files and how they are accessed.\";}}','system',0,0,0,0,-10,4,0,1,8,46,101,0,0,0,0,0,0),('management',102,54,'admin/appearance/settings/garland','admin/appearance/settings/garland','Garland','a:0:{}','system',-1,0,0,0,0,4,0,1,7,54,102,0,0,0,0,0,0),('management',103,54,'admin/appearance/settings/global','admin/appearance/settings/global','Global settings','a:0:{}','system',-1,0,0,0,-1,4,0,1,7,54,103,0,0,0,0,0,0),('management',104,48,'admin/config/people/ip-blocking','admin/config/people/ip-blocking','IP address blocking','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:28:\"Manage blocked IP addresses.\";}}','system',0,0,1,0,10,4,0,1,8,48,104,0,0,0,0,0,0),('management',105,46,'admin/config/media/image-styles','admin/config/media/image-styles','Image styles','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:78:\"Configure styles that can be used for resizing or adjusting images on display.\";}}','system',0,0,1,0,0,4,0,1,8,46,105,0,0,0,0,0,0),('management',106,46,'admin/config/media/image-toolkit','admin/config/media/image-toolkit','Image toolkit','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:74:\"Choose which image toolkit to use if you have installed optional toolkits.\";}}','system',0,0,0,0,20,4,0,1,8,46,106,0,0,0,0,0,0),('management',107,44,'admin/modules/list/confirm','admin/modules/list/confirm','List','a:0:{}','system',-1,0,0,0,0,4,0,1,16,44,107,0,0,0,0,0,0),('management',108,36,'admin/structure/types/list','admin/structure/types/list','List','a:0:{}','system',-1,0,0,0,-10,4,0,1,21,36,108,0,0,0,0,0,0),('management',109,57,'admin/structure/taxonomy/list','admin/structure/taxonomy/list','List','a:0:{}','system',-1,0,0,0,-10,4,0,1,21,57,109,0,0,0,0,0,0),('management',110,47,'admin/structure/menu/list','admin/structure/menu/list','List menus','a:0:{}','system',-1,0,0,0,-10,4,0,1,21,47,110,0,0,0,0,0,0),('management',111,39,'admin/config/development/logging','admin/config/development/logging','Logging and errors','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:154:\"Settings for logging and alerts modules. Various modules can route Drupal\'s system events to different destinations, such as syslog, database, email, etc.\";}}','system',0,0,0,0,-15,4,0,1,8,39,111,0,0,0,0,0,0),('management',112,39,'admin/config/development/maintenance','admin/config/development/maintenance','Maintenance mode','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:62:\"Take the site offline for maintenance or bring it back online.\";}}','system',0,0,0,0,-10,4,0,1,8,39,112,0,0,0,0,0,0),('management',113,39,'admin/config/development/performance','admin/config/development/performance','Performance','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:101:\"Enable or disable page caching for anonymous users and set CSS and JS bandwidth optimization options.\";}}','system',0,0,0,0,-20,4,0,1,8,39,113,0,0,0,0,0,0),('management',114,49,'admin/people/permissions/list','admin/people/permissions/list','Permissions','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:64:\"Determine access to features by selecting permissions for roles.\";}}','system',-1,0,0,0,-8,4,0,1,18,49,114,0,0,0,0,0,0),('management',115,32,'admin/content/comment/new','admin/content/comment/new','Published comments','a:0:{}','system',-1,0,0,0,-10,4,0,1,9,32,115,0,0,0,0,0,0),('management',116,64,'admin/config/services/rss-publishing','admin/config/services/rss-publishing','RSS publishing','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:114:\"Configure the site description, the number of items per feed and whether feeds should be titles/teasers/full-text.\";}}','system',0,0,0,0,0,4,0,1,8,64,116,0,0,0,0,0,0),('management',117,51,'admin/config/regional/settings','admin/config/regional/settings','Regional settings','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:54:\"Settings for the site\'s default time zone and country.\";}}','system',0,0,0,0,-20,4,0,1,8,51,117,0,0,0,0,0,0),('management',118,49,'admin/people/permissions/roles','admin/people/permissions/roles','Roles','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:30:\"List, edit, or add user roles.\";}}','system',-1,0,1,0,-5,4,0,1,18,49,118,0,0,0,0,0,0),('management',119,47,'admin/structure/menu/settings','admin/structure/menu/settings','Settings','a:0:{}','system',-1,0,0,0,5,4,0,1,21,47,119,0,0,0,0,0,0),('management',120,54,'admin/appearance/settings/seven','admin/appearance/settings/seven','Seven','a:0:{}','system',-1,0,0,0,0,4,0,1,7,54,120,0,0,0,0,0,0),('management',121,56,'admin/config/system/site-information','admin/config/system/site-information','Site information','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:104:\"Change site name, e-mail address, slogan, default front page, and number of posts per page, error pages.\";}}','system',0,0,0,0,-20,4,0,1,8,56,121,0,0,0,0,0,0),('management',122,54,'admin/appearance/settings/stark','admin/appearance/settings/stark','Stark','a:0:{}','system',-1,0,0,0,0,4,0,1,7,54,122,0,0,0,0,0,0),('management',123,35,'admin/config/content/formats','admin/config/content/formats','Text formats','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:127:\"Configure how content input by users is filtered, including allowed HTML tags. Also allows enabling of module-provided filters.\";}}','system',0,0,1,0,0,4,0,1,8,35,123,0,0,0,0,0,0),('management',124,32,'admin/content/comment/approval','admin/content/comment/approval','Unapproved comments','a:0:{}','system',-1,0,0,0,0,4,0,1,9,32,124,0,0,0,0,0,0),('management',125,60,'admin/modules/uninstall/confirm','admin/modules/uninstall/confirm','Uninstall','a:0:{}','system',-1,0,0,0,0,4,0,1,16,60,125,0,0,0,0,0,0),('navigation',126,40,'user/%/edit/account','user/%/edit/account','Account','a:0:{}','system',-1,0,0,0,0,3,0,17,40,126,0,0,0,0,0,0,0),('management',127,123,'admin/config/content/formats/%','admin/config/content/formats/%','','a:0:{}','system',0,0,1,0,0,5,0,1,8,35,123,127,0,0,0,0,0),('management',128,105,'admin/config/media/image-styles/add','admin/config/media/image-styles/add','Add style','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:22:\"Add a new image style.\";}}','system',-1,0,0,0,2,5,0,1,8,46,105,128,0,0,0,0,0),('management',129,89,'admin/structure/taxonomy/%/add','admin/structure/taxonomy/%/add','Add term','a:0:{}','system',-1,0,0,0,0,5,0,1,21,57,89,129,0,0,0,0,0),('management',130,123,'admin/config/content/formats/add','admin/config/content/formats/add','Add text format','a:0:{}','system',-1,0,0,0,1,5,0,1,8,35,123,130,0,0,0,0,0),('management',131,30,'admin/structure/block/list/bartik','admin/structure/block/list/bartik','Bartik','a:0:{}','system',-1,0,0,0,0,4,0,1,21,30,131,0,0,0,0,0,0),('management',132,91,'admin/config/system/actions/configure','admin/config/system/actions/configure','Configure an advanced action','a:0:{}','system',-1,0,0,0,0,5,0,1,8,56,91,132,0,0,0,0,0),('management',133,47,'admin/structure/menu/manage/%','admin/structure/menu/manage/%','Customize menu','a:0:{}','system',0,0,1,0,0,4,0,1,21,47,133,0,0,0,0,0,0),('management',134,89,'admin/structure/taxonomy/%/edit','admin/structure/taxonomy/%/edit','Edit','a:0:{}','system',-1,0,0,0,-10,5,0,1,21,57,89,134,0,0,0,0,0),('management',135,36,'admin/structure/types/manage/%','admin/structure/types/manage/%','Edit content type','a:0:{}','system',0,0,1,0,0,4,0,1,21,36,135,0,0,0,0,0,0),('management',136,99,'admin/config/regional/date-time/formats','admin/config/regional/date-time/formats','Formats','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:51:\"Configure display format strings for date and time.\";}}','system',-1,0,1,0,-9,5,0,1,8,51,99,136,0,0,0,0,0),('management',137,30,'admin/structure/block/list/garland','admin/structure/block/list/garland','Garland','a:0:{}','system',-1,0,0,0,0,4,0,1,21,30,137,0,0,0,0,0,0),('management',138,123,'admin/config/content/formats/list','admin/config/content/formats/list','List','a:0:{}','system',-1,0,0,0,0,5,0,1,8,35,123,138,0,0,0,0,0),('management',139,89,'admin/structure/taxonomy/%/list','admin/structure/taxonomy/%/list','List','a:0:{}','system',-1,0,0,0,-20,5,0,1,21,57,89,139,0,0,0,0,0),('management',140,105,'admin/config/media/image-styles/list','admin/config/media/image-styles/list','List','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:42:\"List the current image styles on the site.\";}}','system',-1,0,0,0,1,5,0,1,8,46,105,140,0,0,0,0,0),('management',141,91,'admin/config/system/actions/manage','admin/config/system/actions/manage','Manage actions','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:41:\"Manage the actions defined for your site.\";}}','system',-1,0,0,0,-2,5,0,1,8,56,91,141,0,0,0,0,0),('management',142,90,'admin/config/people/accounts/settings','admin/config/people/accounts/settings','Settings','a:0:{}','system',-1,0,0,0,-10,5,0,1,8,48,90,142,0,0,0,0,0),('management',143,30,'admin/structure/block/list/seven','admin/structure/block/list/seven','Seven','a:0:{}','system',-1,0,0,0,0,4,0,1,21,30,143,0,0,0,0,0,0),('management',144,30,'admin/structure/block/list/stark','admin/structure/block/list/stark','Stark','a:0:{}','system',-1,0,0,0,0,4,0,1,21,30,144,0,0,0,0,0,0),('management',145,99,'admin/config/regional/date-time/types','admin/config/regional/date-time/types','Types','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:44:\"Configure display formats for date and time.\";}}','system',-1,0,1,0,-10,5,0,1,8,51,99,145,0,0,0,0,0),('navigation',146,52,'node/%/revisions/%/delete','node/%/revisions/%/delete','Delete earlier revision','a:0:{}','system',0,0,0,0,0,3,0,5,52,146,0,0,0,0,0,0,0),('navigation',147,52,'node/%/revisions/%/revert','node/%/revisions/%/revert','Revert to earlier revision','a:0:{}','system',0,0,0,0,0,3,0,5,52,147,0,0,0,0,0,0,0),('navigation',148,52,'node/%/revisions/%/view','node/%/revisions/%/view','Revisions','a:0:{}','system',0,0,0,0,0,3,0,5,52,148,0,0,0,0,0,0,0),('management',149,137,'admin/structure/block/list/garland/add','admin/structure/block/list/garland/add','Add block','a:0:{}','system',-1,0,0,0,0,5,0,1,21,30,137,149,0,0,0,0,0),('management',150,143,'admin/structure/block/list/seven/add','admin/structure/block/list/seven/add','Add block','a:0:{}','system',-1,0,0,0,0,5,0,1,21,30,143,150,0,0,0,0,0),('management',151,144,'admin/structure/block/list/stark/add','admin/structure/block/list/stark/add','Add block','a:0:{}','system',-1,0,0,0,0,5,0,1,21,30,144,151,0,0,0,0,0),('management',152,145,'admin/config/regional/date-time/types/add','admin/config/regional/date-time/types/add','Add date type','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:18:\"Add new date type.\";}}','system',-1,0,0,0,-10,6,0,1,8,51,99,145,152,0,0,0,0),('management',153,136,'admin/config/regional/date-time/formats/add','admin/config/regional/date-time/formats/add','Add format','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:43:\"Allow users to add additional date formats.\";}}','system',-1,0,0,0,-10,6,0,1,8,51,99,136,153,0,0,0,0),('management',154,133,'admin/structure/menu/manage/%/add','admin/structure/menu/manage/%/add','Add link','a:0:{}','system',-1,0,0,0,0,5,0,1,21,47,133,154,0,0,0,0,0),('management',155,30,'admin/structure/block/manage/%/%','admin/structure/block/manage/%/%','Configure block','a:0:{}','system',0,0,0,0,0,4,0,1,21,30,155,0,0,0,0,0,0),('navigation',156,31,'user/%/cancel/confirm/%/%','user/%/cancel/confirm/%/%','Confirm account cancellation','a:0:{}','system',0,0,0,0,0,3,0,17,31,156,0,0,0,0,0,0,0),('management',157,135,'admin/structure/types/manage/%/delete','admin/structure/types/manage/%/delete','Delete','a:0:{}','system',0,0,0,0,0,5,0,1,21,36,135,157,0,0,0,0,0),('management',158,104,'admin/config/people/ip-blocking/delete/%','admin/config/people/ip-blocking/delete/%','Delete IP address','a:0:{}','system',0,0,0,0,0,5,0,1,8,48,104,158,0,0,0,0,0),('management',159,91,'admin/config/system/actions/delete/%','admin/config/system/actions/delete/%','Delete action','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:17:\"Delete an action.\";}}','system',0,0,0,0,0,5,0,1,8,56,91,159,0,0,0,0,0),('management',160,133,'admin/structure/menu/manage/%/delete','admin/structure/menu/manage/%/delete','Delete menu','a:0:{}','system',0,0,0,0,0,5,0,1,21,47,133,160,0,0,0,0,0),('management',161,47,'admin/structure/menu/item/%/delete','admin/structure/menu/item/%/delete','Delete menu link','a:0:{}','system',0,0,0,0,0,4,0,1,21,47,161,0,0,0,0,0,0),('management',162,118,'admin/people/permissions/roles/delete/%','admin/people/permissions/roles/delete/%','Delete role','a:0:{}','system',0,0,0,0,0,5,0,1,18,49,118,162,0,0,0,0,0),('management',163,127,'admin/config/content/formats/%/disable','admin/config/content/formats/%/disable','Disable text format','a:0:{}','system',0,0,0,0,0,6,0,1,8,35,123,127,163,0,0,0,0),('management',164,135,'admin/structure/types/manage/%/edit','admin/structure/types/manage/%/edit','Edit','a:0:{}','system',-1,0,0,0,0,5,0,1,21,36,135,164,0,0,0,0,0),('management',165,133,'admin/structure/menu/manage/%/edit','admin/structure/menu/manage/%/edit','Edit menu','a:0:{}','system',-1,0,0,0,0,5,0,1,21,47,133,165,0,0,0,0,0),('management',166,47,'admin/structure/menu/item/%/edit','admin/structure/menu/item/%/edit','Edit menu link','a:0:{}','system',0,0,0,0,0,4,0,1,21,47,166,0,0,0,0,0,0),('management',167,118,'admin/people/permissions/roles/edit/%','admin/people/permissions/roles/edit/%','Edit role','a:0:{}','system',0,0,0,0,0,5,0,1,18,49,118,167,0,0,0,0,0),('management',168,105,'admin/config/media/image-styles/edit/%','admin/config/media/image-styles/edit/%','Edit style','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:25:\"Configure an image style.\";}}','system',0,0,1,0,0,5,0,1,8,46,105,168,0,0,0,0,0),('management',169,133,'admin/structure/menu/manage/%/list','admin/structure/menu/manage/%/list','List links','a:0:{}','system',-1,0,0,0,-10,5,0,1,21,47,133,169,0,0,0,0,0),('management',170,47,'admin/structure/menu/item/%/reset','admin/structure/menu/item/%/reset','Reset menu link','a:0:{}','system',0,0,0,0,0,4,0,1,21,47,170,0,0,0,0,0,0),('management',171,105,'admin/config/media/image-styles/delete/%','admin/config/media/image-styles/delete/%','Delete style','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:22:\"Delete an image style.\";}}','system',0,0,0,0,0,5,0,1,8,46,105,171,0,0,0,0,0),('management',172,105,'admin/config/media/image-styles/revert/%','admin/config/media/image-styles/revert/%','Revert style','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:22:\"Revert an image style.\";}}','system',0,0,0,0,0,5,0,1,8,46,105,172,0,0,0,0,0),('management',173,135,'admin/structure/types/manage/%/comment/display','admin/structure/types/manage/%/comment/display','Comment display','a:0:{}','system',-1,0,0,0,4,5,0,1,21,36,135,173,0,0,0,0,0),('management',174,135,'admin/structure/types/manage/%/comment/fields','admin/structure/types/manage/%/comment/fields','Comment fields','a:0:{}','system',-1,0,1,0,3,5,0,1,21,36,135,174,0,0,0,0,0),('management',175,155,'admin/structure/block/manage/%/%/configure','admin/structure/block/manage/%/%/configure','Configure block','a:0:{}','system',-1,0,0,0,0,5,0,1,21,30,155,175,0,0,0,0,0),('management',176,155,'admin/structure/block/manage/%/%/delete','admin/structure/block/manage/%/%/delete','Delete block','a:0:{}','system',-1,0,0,0,0,5,0,1,21,30,155,176,0,0,0,0,0),('management',177,136,'admin/config/regional/date-time/formats/%/delete','admin/config/regional/date-time/formats/%/delete','Delete date format','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:47:\"Allow users to delete a configured date format.\";}}','system',0,0,0,0,0,6,0,1,8,51,99,136,177,0,0,0,0),('management',178,145,'admin/config/regional/date-time/types/%/delete','admin/config/regional/date-time/types/%/delete','Delete date type','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:45:\"Allow users to delete a configured date type.\";}}','system',0,0,0,0,0,6,0,1,8,51,99,145,178,0,0,0,0),('management',179,136,'admin/config/regional/date-time/formats/%/edit','admin/config/regional/date-time/formats/%/edit','Edit date format','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:45:\"Allow users to edit a configured date format.\";}}','system',0,0,0,0,0,6,0,1,8,51,99,136,179,0,0,0,0),('management',180,168,'admin/config/media/image-styles/edit/%/add/%','admin/config/media/image-styles/edit/%/add/%','Add image effect','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:28:\"Add a new effect to a style.\";}}','system',0,0,0,0,0,6,0,1,8,46,105,168,180,0,0,0,0),('management',181,168,'admin/config/media/image-styles/edit/%/effects/%','admin/config/media/image-styles/edit/%/effects/%','Edit image effect','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:39:\"Edit an existing effect within a style.\";}}','system',0,0,1,0,0,6,0,1,8,46,105,168,181,0,0,0,0),('management',182,181,'admin/config/media/image-styles/edit/%/effects/%/delete','admin/config/media/image-styles/edit/%/effects/%/delete','Delete image effect','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:39:\"Delete an existing effect from a style.\";}}','system',0,0,0,0,0,7,0,1,8,46,105,168,181,182,0,0,0),('management',183,47,'admin/structure/menu/manage/main-menu','admin/structure/menu/manage/%','Main menu','a:0:{}','menu',0,0,0,0,0,4,0,1,21,47,183,0,0,0,0,0,0),('management',184,47,'admin/structure/menu/manage/management','admin/structure/menu/manage/%','Management','a:0:{}','menu',0,0,0,0,0,4,0,1,21,47,184,0,0,0,0,0,0),('management',185,47,'admin/structure/menu/manage/navigation','admin/structure/menu/manage/%','Navigation','a:0:{}','menu',0,0,0,0,0,4,0,1,21,47,185,0,0,0,0,0,0),('management',186,47,'admin/structure/menu/manage/user-menu','admin/structure/menu/manage/%','User menu','a:0:{}','menu',0,0,0,0,0,4,0,1,21,47,186,0,0,0,0,0,0),('navigation',187,0,'search','search','Search','a:0:{}','system',1,0,0,0,0,1,0,187,0,0,0,0,0,0,0,0,0),('navigation',188,187,'search/node','search/node','Content','a:0:{}','system',-1,0,0,0,-10,2,0,187,188,0,0,0,0,0,0,0,0),('navigation',189,187,'search/user','search/user','Users','a:0:{}','system',-1,0,0,0,0,2,0,187,189,0,0,0,0,0,0,0,0),('navigation',190,188,'search/node/%','search/node/%','Content','a:0:{}','system',-1,0,0,0,0,3,0,187,188,190,0,0,0,0,0,0,0),('navigation',191,17,'user/%/shortcuts','user/%/shortcuts','Shortcuts','a:0:{}','system',-1,0,0,0,0,2,0,17,191,0,0,0,0,0,0,0,0),('management',192,19,'admin/reports/search','admin/reports/search','Top search phrases','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:33:\"View most popular search phrases.\";}}','system',0,0,0,0,0,3,0,1,19,192,0,0,0,0,0,0,0),('navigation',193,189,'search/user/%','search/user/%','Users','a:0:{}','system',-1,0,0,0,0,3,0,187,189,193,0,0,0,0,0,0,0),('management',194,12,'admin/help/number','admin/help/number','number','a:0:{}','system',-1,0,0,0,0,3,0,1,12,194,0,0,0,0,0,0,0),('management',195,12,'admin/help/overlay','admin/help/overlay','overlay','a:0:{}','system',-1,0,0,0,0,3,0,1,12,195,0,0,0,0,0,0,0),('management',196,12,'admin/help/path','admin/help/path','path','a:0:{}','system',-1,0,0,0,0,3,0,1,12,196,0,0,0,0,0,0,0),('management',197,12,'admin/help/rdf','admin/help/rdf','rdf','a:0:{}','system',-1,0,0,0,0,3,0,1,12,197,0,0,0,0,0,0,0),('management',198,12,'admin/help/search','admin/help/search','search','a:0:{}','system',-1,0,0,0,0,3,0,1,12,198,0,0,0,0,0,0,0),('management',199,12,'admin/help/shortcut','admin/help/shortcut','shortcut','a:0:{}','system',-1,0,0,0,0,3,0,1,12,199,0,0,0,0,0,0,0),('management',200,53,'admin/config/search/settings','admin/config/search/settings','Search settings','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:67:\"Configure relevance settings for search and other indexing options.\";}}','system',0,0,0,0,-10,4,0,1,8,53,200,0,0,0,0,0,0),('management',201,61,'admin/config/user-interface/shortcut','admin/config/user-interface/shortcut','Shortcuts','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:29:\"Add and modify shortcut sets.\";}}','system',0,0,1,0,0,4,0,1,8,61,201,0,0,0,0,0,0),('management',202,53,'admin/config/search/path','admin/config/search/path','URL aliases','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:46:\"Change your site\'s URL paths by aliasing them.\";}}','system',0,0,1,0,-5,4,0,1,8,53,202,0,0,0,0,0,0),('management',203,202,'admin/config/search/path/add','admin/config/search/path/add','Add alias','a:0:{}','system',-1,0,0,0,0,5,0,1,8,53,202,203,0,0,0,0,0),('management',204,201,'admin/config/user-interface/shortcut/add-set','admin/config/user-interface/shortcut/add-set','Add shortcut set','a:0:{}','system',-1,0,0,0,0,5,0,1,8,61,201,204,0,0,0,0,0),('management',205,200,'admin/config/search/settings/reindex','admin/config/search/settings/reindex','Clear index','a:0:{}','system',-1,0,0,0,0,5,0,1,8,53,200,205,0,0,0,0,0),('management',206,201,'admin/config/user-interface/shortcut/%','admin/config/user-interface/shortcut/%','Edit shortcuts','a:0:{}','system',0,0,1,0,0,5,0,1,8,61,201,206,0,0,0,0,0),('management',207,202,'admin/config/search/path/list','admin/config/search/path/list','List','a:0:{}','system',-1,0,0,0,-10,5,0,1,8,53,202,207,0,0,0,0,0),('management',208,206,'admin/config/user-interface/shortcut/%/add-link','admin/config/user-interface/shortcut/%/add-link','Add shortcut','a:0:{}','system',-1,0,0,0,0,6,0,1,8,61,201,206,208,0,0,0,0),('management',209,202,'admin/config/search/path/delete/%','admin/config/search/path/delete/%','Delete alias','a:0:{}','system',0,0,0,0,0,5,0,1,8,53,202,209,0,0,0,0,0),('management',210,206,'admin/config/user-interface/shortcut/%/delete','admin/config/user-interface/shortcut/%/delete','Delete shortcut set','a:0:{}','system',0,0,0,0,0,6,0,1,8,61,201,206,210,0,0,0,0),('management',211,202,'admin/config/search/path/edit/%','admin/config/search/path/edit/%','Edit alias','a:0:{}','system',0,0,0,0,0,5,0,1,8,53,202,211,0,0,0,0,0),('management',212,206,'admin/config/user-interface/shortcut/%/edit','admin/config/user-interface/shortcut/%/edit','Edit set name','a:0:{}','system',-1,0,0,0,10,6,0,1,8,61,201,206,212,0,0,0,0),('management',213,201,'admin/config/user-interface/shortcut/link/%','admin/config/user-interface/shortcut/link/%','Edit shortcut','a:0:{}','system',0,0,1,0,0,5,0,1,8,61,201,213,0,0,0,0,0),('management',214,206,'admin/config/user-interface/shortcut/%/links','admin/config/user-interface/shortcut/%/links','List links','a:0:{}','system',-1,0,0,0,0,6,0,1,8,61,201,206,214,0,0,0,0),('management',215,213,'admin/config/user-interface/shortcut/link/%/delete','admin/config/user-interface/shortcut/link/%/delete','Delete shortcut','a:0:{}','system',0,0,0,0,0,6,0,1,8,61,201,213,215,0,0,0,0),('shortcut-set-1',216,0,'node/add','node/add','Add content','a:0:{}','menu',0,0,0,0,-50,1,0,216,0,0,0,0,0,0,0,0,0),('shortcut-set-1',217,0,'admin/content','admin/content','Find content','a:0:{}','menu',0,0,0,0,-49,1,0,217,0,0,0,0,0,0,0,0,0),('main-menu',218,0,'node/1','node/%','Pages','a:1:{s:10:\"attributes\";a:0:{}}','menu',0,0,1,1,-50,1,1,218,0,0,0,0,0,0,0,0,0),('navigation',219,6,'node/add/article','node/add/article','Article','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:89:\"Use articles for time-sensitive content like news, press releases or blog posts.\";}}','system',0,0,0,0,0,2,0,6,219,0,0,0,0,0,0,0,0),('navigation',220,6,'node/add/page','node/add/page','Basic page','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:77:\"Use basic pages for your static content, such as an \'About us\' page.\";}}','system',0,0,0,0,0,2,0,6,220,0,0,0,0,0,0,0,0),('management',221,12,'admin/help/toolbar','admin/help/toolbar','toolbar','a:0:{}','system',-1,0,0,0,0,3,0,1,12,221,0,0,0,0,0,0,0),('management',260,19,'admin/reports/updates','admin/reports/updates','Available updates','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:82:\"Get a status report about available updates for your installed modules and themes.\";}}','system',0,0,0,0,-50,3,0,1,19,260,0,0,0,0,0,0,0),('management',261,7,'admin/appearance/install','admin/appearance/install','Install new theme','a:0:{}','system',-1,0,0,0,25,3,0,1,7,261,0,0,0,0,0,0,0),('management',262,16,'admin/modules/update','admin/modules/update','Update','a:0:{}','system',-1,0,0,0,10,3,0,1,16,262,0,0,0,0,0,0,0),('management',263,16,'admin/modules/install','admin/modules/install','Install new module','a:0:{}','system',-1,0,0,0,25,3,0,1,16,263,0,0,0,0,0,0,0),('management',264,7,'admin/appearance/update','admin/appearance/update','Update','a:0:{}','system',-1,0,0,0,10,3,0,1,7,264,0,0,0,0,0,0,0),('management',265,12,'admin/help/update','admin/help/update','update','a:0:{}','system',-1,0,0,0,0,3,0,1,12,265,0,0,0,0,0,0,0),('management',266,260,'admin/reports/updates/install','admin/reports/updates/install','Install new module or theme','a:0:{}','system',-1,0,0,0,25,4,0,1,19,260,266,0,0,0,0,0,0),('management',267,260,'admin/reports/updates/update','admin/reports/updates/update','Update','a:0:{}','system',-1,0,0,0,10,4,0,1,19,260,267,0,0,0,0,0,0),('management',268,260,'admin/reports/updates/list','admin/reports/updates/list','List','a:0:{}','system',-1,0,0,0,0,4,0,1,19,260,268,0,0,0,0,0,0),('management',269,260,'admin/reports/updates/settings','admin/reports/updates/settings','Settings','a:0:{}','system',-1,0,0,0,50,4,0,1,19,260,269,0,0,0,0,0,0),('management',308,54,'admin/appearance/settings/simplecorp','admin/appearance/settings/simplecorp','SimpleCorp','a:0:{}','system',-1,0,0,0,0,4,0,1,7,54,308,0,0,0,0,0,0),('management',309,30,'admin/structure/block/list/simplecorp','admin/structure/block/list/simplecorp','SimpleCorp','a:0:{}','system',-1,0,0,0,-10,4,0,1,21,30,309,0,0,0,0,0,0),('management',311,131,'admin/structure/block/list/bartik/add','admin/structure/block/list/bartik/add','Add block','a:0:{}','system',-1,0,0,0,0,5,0,1,21,30,131,311,0,0,0,0,0),('management',312,12,'admin/help/php','admin/help/php','php','a:0:{}','system',-1,0,0,0,0,3,0,1,12,312,0,0,0,0,0,0,0),('main-menu',316,0,'blog','blog','Blog','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,1,1,-47,1,1,316,0,0,0,0,0,0,0,0,0),('management',321,12,'admin/help/superfish','admin/help/superfish','superfish','a:0:{}','system',-1,0,0,0,0,3,0,1,12,321,0,0,0,0,0,0,0),('management',322,61,'admin/config/user-interface/superfish','admin/config/user-interface/superfish','Superfish','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:25:\"Configure Superfish Menus\";}}','system',0,0,0,0,0,4,0,1,8,61,322,0,0,0,0,0,0),('navigation',323,0,'contact','contact','Contact','a:0:{}','system',1,0,0,0,0,1,0,323,0,0,0,0,0,0,0,0,0),('navigation',324,17,'user/%/contact','user/%/contact','Contact','a:0:{}','system',-1,0,0,0,2,2,0,17,324,0,0,0,0,0,0,0,0),('management',325,21,'admin/structure/contact','admin/structure/contact','Contact form','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:71:\"Create a system contact form and set up categories for the form to use.\";}}','system',0,0,1,0,0,3,0,1,21,325,0,0,0,0,0,0,0),('management',326,12,'admin/help/contact','admin/help/contact','contact','a:0:{}','system',-1,0,0,0,0,3,0,1,12,326,0,0,0,0,0,0,0),('management',327,325,'admin/structure/contact/add','admin/structure/contact/add','Add category','a:0:{}','system',-1,0,0,0,1,4,0,1,21,325,327,0,0,0,0,0,0),('management',328,325,'admin/structure/contact/delete/%','admin/structure/contact/delete/%','Delete contact','a:0:{}','system',0,0,0,0,0,4,0,1,21,325,328,0,0,0,0,0,0),('management',329,325,'admin/structure/contact/edit/%','admin/structure/contact/edit/%','Edit contact category','a:0:{}','system',0,0,0,0,0,4,0,1,21,325,329,0,0,0,0,0,0),('main-menu',331,0,'contact','contact','Contact','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,0,0,-45,1,1,331,0,0,0,0,0,0,0,0,0),('main-menu',332,218,'node/1','node/%','About Us','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,0,0,0,2,1,218,332,0,0,0,0,0,0,0,0),('shortcut-set-1',333,0,'admin/structure/block','admin/structure/block','Blocks','a:0:{}','menu',0,0,0,0,-48,1,0,333,0,0,0,0,0,0,0,0,0),('navigation',334,0,'blog','blog','Blogs','a:0:{}','system',1,0,1,0,0,1,0,334,0,0,0,0,0,0,0,0,0),('navigation',335,334,'blog/%','blog/%','My blog','a:0:{}','system',0,0,0,0,0,2,0,334,335,0,0,0,0,0,0,0,0),('navigation',336,6,'node/add/blog','node/add/blog','Blog entry','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:58:\"Use for multi-user blogs. Every user gets a personal blog.\";}}','system',0,0,0,0,0,2,0,6,336,0,0,0,0,0,0,0,0),('management',337,12,'admin/help/blog','admin/help/blog','blog','a:0:{}','system',-1,0,0,0,0,3,0,1,12,337,0,0,0,0,0,0,0),('main-menu',338,316,'taxonomy/term/4','taxonomy/term/%','News','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,0,0,-50,2,1,316,338,0,0,0,0,0,0,0,0),('main-menu',339,316,'taxonomy/term/5','taxonomy/term/%','Events','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,0,0,-49,2,1,316,339,0,0,0,0,0,0,0,0),('main-menu',340,218,'node/8','node/%','Typography','a:0:{}','menu',0,0,0,0,0,2,0,218,340,0,0,0,0,0,0,0,0),('main-menu',341,343,'node/9','node/%','Columns','a:0:{}','menu',0,0,0,0,-50,2,1,343,341,0,0,0,0,0,0,0,0),('main-menu',342,343,'node/10','node/%','Lists Styles','a:0:{}','menu',0,0,0,0,-49,2,1,343,342,0,0,0,0,0,0,0,0),('main-menu',343,0,'node/10','node/%','Shortcodes','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,1,1,-46,1,1,343,0,0,0,0,0,0,0,0,0),('main-menu',344,343,'node/11','node/%','Message Boxes','a:0:{}','menu',0,0,0,0,0,2,0,343,344,0,0,0,0,0,0,0,0),('main-menu',345,347,'node/12','node/%','Portofolio with Sidebar','a:1:{s:10:\"attributes\";a:0:{}}','menu',0,0,1,0,-49,2,1,347,345,0,0,0,0,0,0,0,0),('main-menu',346,347,'node/13','node/%','Portofolio Full Width','a:0:{}','menu',0,0,0,0,-50,2,1,347,346,0,0,0,0,0,0,0,0),('main-menu',347,0,'node/13','node/%','Portofolio','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,1,1,-49,1,1,347,0,0,0,0,0,0,0,0,0),('main-menu',348,343,'node/19','node/%','Dropcaps & Alerts','a:0:{}','menu',0,0,0,0,0,2,0,343,348,0,0,0,0,0,0,0,0),('management',349,47,'admin/structure/menu/manage/menu-bottom-footer-menu','admin/structure/menu/manage/%','Bottom Footer Menu','a:0:{}','menu',0,0,0,0,0,4,0,1,21,47,349,0,0,0,0,0,0),('menu-bottom-footer-menu',350,0,'node/1','node/%','Pages','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,0,1,0,1,1,350,0,0,0,0,0,0,0,0,0),('menu-bottom-footer-menu',351,0,'node/13','node/%','Portofolio','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,0,1,0,1,1,351,0,0,0,0,0,0,0,0,0),('menu-bottom-footer-menu',352,0,'blog','blog','Blog','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,0,1,0,1,1,352,0,0,0,0,0,0,0,0,0),('menu-bottom-footer-menu',353,0,'node/10','node/%','Shortcodes','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,0,1,0,1,1,353,0,0,0,0,0,0,0,0,0),('menu-bottom-footer-menu',354,0,'contact','contact','Contact','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:0:\"\";}}','menu',0,0,0,1,0,1,1,354,0,0,0,0,0,0,0,0,0),('management',355,89,'admin/structure/taxonomy/%/display','admin/structure/taxonomy/%/display','Manage display','a:0:{}','system',-1,0,0,0,2,5,0,1,21,57,89,355,0,0,0,0,0),('management',356,90,'admin/config/people/accounts/display','admin/config/people/accounts/display','Manage display','a:0:{}','system',-1,0,0,0,2,5,0,1,8,48,90,356,0,0,0,0,0),('management',357,89,'admin/structure/taxonomy/%/fields','admin/structure/taxonomy/%/fields','Manage fields','a:0:{}','system',-1,0,1,0,1,5,0,1,21,57,89,357,0,0,0,0,0),('management',358,90,'admin/config/people/accounts/fields','admin/config/people/accounts/fields','Manage fields','a:0:{}','system',-1,0,1,0,1,5,0,1,8,48,90,358,0,0,0,0,0),('management',359,355,'admin/structure/taxonomy/%/display/default','admin/structure/taxonomy/%/display/default','Default','a:0:{}','system',-1,0,0,0,-10,6,0,1,21,57,89,355,359,0,0,0,0),('management',360,356,'admin/config/people/accounts/display/default','admin/config/people/accounts/display/default','Default','a:0:{}','system',-1,0,0,0,-10,6,0,1,8,48,90,356,360,0,0,0,0),('management',361,135,'admin/structure/types/manage/%/display','admin/structure/types/manage/%/display','Manage display','a:0:{}','system',-1,0,0,0,2,5,0,1,21,36,135,361,0,0,0,0,0),('management',362,135,'admin/structure/types/manage/%/fields','admin/structure/types/manage/%/fields','Manage fields','a:0:{}','system',-1,0,1,0,1,5,0,1,21,36,135,362,0,0,0,0,0),('management',363,355,'admin/structure/taxonomy/%/display/full','admin/structure/taxonomy/%/display/full','Taxonomy term page','a:0:{}','system',-1,0,0,0,0,6,0,1,21,57,89,355,363,0,0,0,0),('management',364,356,'admin/config/people/accounts/display/full','admin/config/people/accounts/display/full','User account','a:0:{}','system',-1,0,0,0,0,6,0,1,8,48,90,356,364,0,0,0,0),('management',365,357,'admin/structure/taxonomy/%/fields/%','admin/structure/taxonomy/%/fields/%','','a:0:{}','system',0,0,0,0,0,6,0,1,21,57,89,357,365,0,0,0,0),('management',366,358,'admin/config/people/accounts/fields/%','admin/config/people/accounts/fields/%','','a:0:{}','system',0,0,0,0,0,6,0,1,8,48,90,358,366,0,0,0,0),('management',367,361,'admin/structure/types/manage/%/display/default','admin/structure/types/manage/%/display/default','Default','a:0:{}','system',-1,0,0,0,-10,6,0,1,21,36,135,361,367,0,0,0,0),('management',368,361,'admin/structure/types/manage/%/display/full','admin/structure/types/manage/%/display/full','Full content','a:0:{}','system',-1,0,0,0,0,6,0,1,21,36,135,361,368,0,0,0,0),('management',369,361,'admin/structure/types/manage/%/display/rss','admin/structure/types/manage/%/display/rss','RSS','a:0:{}','system',-1,0,0,0,2,6,0,1,21,36,135,361,369,0,0,0,0),('management',370,361,'admin/structure/types/manage/%/display/search_index','admin/structure/types/manage/%/display/search_index','Search index','a:0:{}','system',-1,0,0,0,3,6,0,1,21,36,135,361,370,0,0,0,0),('management',371,361,'admin/structure/types/manage/%/display/search_result','admin/structure/types/manage/%/display/search_result','Search result highlighting input','a:0:{}','system',-1,0,0,0,4,6,0,1,21,36,135,361,371,0,0,0,0),('management',372,361,'admin/structure/types/manage/%/display/teaser','admin/structure/types/manage/%/display/teaser','Teaser','a:0:{}','system',-1,0,0,0,1,6,0,1,21,36,135,361,372,0,0,0,0),('management',373,362,'admin/structure/types/manage/%/fields/%','admin/structure/types/manage/%/fields/%','','a:0:{}','system',0,0,0,0,0,6,0,1,21,36,135,362,373,0,0,0,0),('management',374,365,'admin/structure/taxonomy/%/fields/%/delete','admin/structure/taxonomy/%/fields/%/delete','Delete','a:0:{}','system',-1,0,0,0,10,7,0,1,21,57,89,357,365,374,0,0,0),('management',375,365,'admin/structure/taxonomy/%/fields/%/edit','admin/structure/taxonomy/%/fields/%/edit','Edit','a:0:{}','system',-1,0,0,0,0,7,0,1,21,57,89,357,365,375,0,0,0),('management',376,365,'admin/structure/taxonomy/%/fields/%/field-settings','admin/structure/taxonomy/%/fields/%/field-settings','Field settings','a:0:{}','system',-1,0,0,0,0,7,0,1,21,57,89,357,365,376,0,0,0),('management',377,365,'admin/structure/taxonomy/%/fields/%/widget-type','admin/structure/taxonomy/%/fields/%/widget-type','Widget type','a:0:{}','system',-1,0,0,0,0,7,0,1,21,57,89,357,365,377,0,0,0),('management',378,366,'admin/config/people/accounts/fields/%/delete','admin/config/people/accounts/fields/%/delete','Delete','a:0:{}','system',-1,0,0,0,10,7,0,1,8,48,90,358,366,378,0,0,0),('management',379,366,'admin/config/people/accounts/fields/%/edit','admin/config/people/accounts/fields/%/edit','Edit','a:0:{}','system',-1,0,0,0,0,7,0,1,8,48,90,358,366,379,0,0,0),('management',380,366,'admin/config/people/accounts/fields/%/field-settings','admin/config/people/accounts/fields/%/field-settings','Field settings','a:0:{}','system',-1,0,0,0,0,7,0,1,8,48,90,358,366,380,0,0,0),('management',381,366,'admin/config/people/accounts/fields/%/widget-type','admin/config/people/accounts/fields/%/widget-type','Widget type','a:0:{}','system',-1,0,0,0,0,7,0,1,8,48,90,358,366,381,0,0,0),('management',382,173,'admin/structure/types/manage/%/comment/display/default','admin/structure/types/manage/%/comment/display/default','Default','a:0:{}','system',-1,0,0,0,-10,6,0,1,21,36,135,173,382,0,0,0,0),('management',383,173,'admin/structure/types/manage/%/comment/display/full','admin/structure/types/manage/%/comment/display/full','Full comment','a:0:{}','system',-1,0,0,0,0,6,0,1,21,36,135,173,383,0,0,0,0),('management',384,373,'admin/structure/types/manage/%/fields/%/delete','admin/structure/types/manage/%/fields/%/delete','Delete','a:0:{}','system',-1,0,0,0,10,7,0,1,21,36,135,362,373,384,0,0,0),('management',385,174,'admin/structure/types/manage/%/comment/fields/%','admin/structure/types/manage/%/comment/fields/%','','a:0:{}','system',0,0,0,0,0,6,0,1,21,36,135,174,385,0,0,0,0),('management',386,373,'admin/structure/types/manage/%/fields/%/edit','admin/structure/types/manage/%/fields/%/edit','Edit','a:0:{}','system',-1,0,0,0,0,7,0,1,21,36,135,362,373,386,0,0,0),('management',387,373,'admin/structure/types/manage/%/fields/%/field-settings','admin/structure/types/manage/%/fields/%/field-settings','Field settings','a:0:{}','system',-1,0,0,0,0,7,0,1,21,36,135,362,373,387,0,0,0),('management',388,373,'admin/structure/types/manage/%/fields/%/widget-type','admin/structure/types/manage/%/fields/%/widget-type','Widget type','a:0:{}','system',-1,0,0,0,0,7,0,1,21,36,135,362,373,388,0,0,0),('management',389,385,'admin/structure/types/manage/%/comment/fields/%/delete','admin/structure/types/manage/%/comment/fields/%/delete','Delete','a:0:{}','system',-1,0,0,0,10,7,0,1,21,36,135,174,385,389,0,0,0),('management',390,385,'admin/structure/types/manage/%/comment/fields/%/edit','admin/structure/types/manage/%/comment/fields/%/edit','Edit','a:0:{}','system',-1,0,0,0,0,7,0,1,21,36,135,174,385,390,0,0,0),('management',391,385,'admin/structure/types/manage/%/comment/fields/%/field-settings','admin/structure/types/manage/%/comment/fields/%/field-settings','Field settings','a:0:{}','system',-1,0,0,0,0,7,0,1,21,36,135,174,385,391,0,0,0),('management',392,385,'admin/structure/types/manage/%/comment/fields/%/widget-type','admin/structure/types/manage/%/comment/fields/%/widget-type','Widget type','a:0:{}','system',-1,0,0,0,0,7,0,1,21,36,135,174,385,392,0,0,0),('navigation',393,4,'filter/tips/%','filter/tips/%','Compose tips','a:0:{}','system',0,0,0,0,0,2,0,4,393,0,0,0,0,0,0,0,0),('management',394,19,'admin/reports/libraries','admin/reports/libraries','Libraries','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:48:\"An overview of libraries installed on this site.\";}}','system',0,0,1,0,0,3,0,1,19,394,0,0,0,0,0,0,0),('management',395,12,'admin/help/libraries','admin/help/libraries','libraries','a:0:{}','system',-1,0,0,0,0,3,0,1,12,395,0,0,0,0,0,0,0),('management',396,394,'admin/reports/libraries/%','admin/reports/libraries/%','Library status report','a:1:{s:10:\"attributes\";a:1:{s:5:\"title\";s:36:\"Status overview for a single library\";}}','system',0,0,0,0,0,4,0,1,19,394,396,0,0,0,0,0,0); +/*!40000 ALTER TABLE `menu_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `menu_router` +-- + +DROP TABLE IF EXISTS `menu_router`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `menu_router` ( `path` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: the Drupal path this entry describes', `load_functions` blob NOT NULL COMMENT 'A serialized array of function names (like node_load) to be called to load an object corresponding to a part of the current path.', `to_arg_functions` blob NOT NULL COMMENT 'A serialized array of function names (like user_uid_optional_to_arg) to be called to replace a part of the router path with another string.', @@ -1674,345 +1425,26 @@ CREATE TABLE IF NOT EXISTS `menu_router` ( KEY `tab_parent` (`tab_parent`(64),`weight`,`title`), KEY `tab_root_weight_title` (`tab_root`(64),`weight`,`title`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Maps paths to various callbacks (access, page and title)'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `menu_router` +-- +LOCK TABLES `menu_router` WRITE; +/*!40000 ALTER TABLE `menu_router` DISABLE KEYS */; +INSERT INTO `menu_router` VALUES ('admin','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',1,1,0,'','admin','Administration','t','','','a:0:{}',6,'','',9,'modules/system/system.admin.inc'),('admin/appearance','','','user_access','a:1:{i:0;s:17:\"administer themes\";}','system_themes_page','a:0:{}','',3,2,0,'','admin/appearance','Appearance','t','','','a:0:{}',6,'Select and configure your themes.','left',-6,'modules/system/system.admin.inc'),('admin/appearance/default','','','user_access','a:1:{i:0;s:17:\"administer themes\";}','system_theme_default','a:0:{}','',7,3,0,'','admin/appearance/default','Set default theme','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('admin/appearance/disable','','','user_access','a:1:{i:0;s:17:\"administer themes\";}','system_theme_disable','a:0:{}','',7,3,0,'','admin/appearance/disable','Disable theme','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('admin/appearance/enable','','','user_access','a:1:{i:0;s:17:\"administer themes\";}','system_theme_enable','a:0:{}','',7,3,0,'','admin/appearance/enable','Enable theme','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('admin/appearance/install','','','update_manager_access','a:0:{}','drupal_get_form','a:2:{i:0;s:27:\"update_manager_install_form\";i:1;s:5:\"theme\";}','',7,3,1,'admin/appearance','admin/appearance','Install new theme','t','','','a:0:{}',388,'','',25,'modules/update/update.manager.inc'),('admin/appearance/list','','','user_access','a:1:{i:0;s:17:\"administer themes\";}','system_themes_page','a:0:{}','',7,3,1,'admin/appearance','admin/appearance','List','t','','','a:0:{}',140,'Select and configure your theme','',-1,'modules/system/system.admin.inc'),('admin/appearance/settings','','','user_access','a:1:{i:0;s:17:\"administer themes\";}','drupal_get_form','a:1:{i:0;s:21:\"system_theme_settings\";}','',7,3,1,'admin/appearance','admin/appearance','Settings','t','','','a:0:{}',132,'Configure default and theme specific settings.','',20,'modules/system/system.admin.inc'),('admin/appearance/settings/bartik','','','_system_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:25:\"themes/bartik/bartik.info\";s:4:\"name\";s:6:\"bartik\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"1\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:19:{s:4:\"name\";s:6:\"Bartik\";s:11:\"description\";s:48:\"A flexible, recolorable theme with many regions.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:3:{s:14:\"css/layout.css\";s:28:\"themes/bartik/css/layout.css\";s:13:\"css/style.css\";s:27:\"themes/bartik/css/style.css\";s:14:\"css/colors.css\";s:28:\"themes/bartik/css/colors.css\";}s:5:\"print\";a:1:{s:13:\"css/print.css\";s:27:\"themes/bartik/css/print.css\";}}s:7:\"regions\";a:20:{s:6:\"header\";s:6:\"Header\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:11:\"highlighted\";s:11:\"Highlighted\";s:8:\"featured\";s:8:\"Featured\";s:7:\"content\";s:7:\"Content\";s:13:\"sidebar_first\";s:13:\"Sidebar first\";s:14:\"sidebar_second\";s:14:\"Sidebar second\";s:14:\"triptych_first\";s:14:\"Triptych first\";s:15:\"triptych_middle\";s:15:\"Triptych middle\";s:13:\"triptych_last\";s:13:\"Triptych last\";s:18:\"footer_firstcolumn\";s:19:\"Footer first column\";s:19:\"footer_secondcolumn\";s:20:\"Footer second column\";s:18:\"footer_thirdcolumn\";s:19:\"Footer third column\";s:19:\"footer_fourthcolumn\";s:20:\"Footer fourth column\";s:6:\"footer\";s:6:\"Footer\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"settings\";a:1:{s:20:\"shortcut_module_link\";s:1:\"0\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:28:\"themes/bartik/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:3:{s:14:\"css/layout.css\";s:28:\"themes/bartik/css/layout.css\";s:13:\"css/style.css\";s:27:\"themes/bartik/css/style.css\";s:14:\"css/colors.css\";s:28:\"themes/bartik/css/colors.css\";}s:5:\"print\";a:1:{s:13:\"css/print.css\";s:27:\"themes/bartik/css/print.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','drupal_get_form','a:2:{i:0;s:21:\"system_theme_settings\";i:1;s:6:\"bartik\";}','',15,4,1,'admin/appearance/settings','admin/appearance','Bartik','t','','','a:0:{}',132,'','',0,'modules/system/system.admin.inc'),('admin/appearance/settings/garland','','','_system_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:27:\"themes/garland/garland.info\";s:4:\"name\";s:7:\"garland\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"0\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:19:{s:4:\"name\";s:7:\"Garland\";s:11:\"description\";s:111:\"A multi-column theme which can be configured to modify colors and switch between fixed and fluid width layouts.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:1:{s:9:\"style.css\";s:24:\"themes/garland/style.css\";}s:5:\"print\";a:1:{s:9:\"print.css\";s:24:\"themes/garland/print.css\";}}s:8:\"settings\";a:1:{s:13:\"garland_width\";s:5:\"fluid\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:7:\"regions\";a:12:{s:13:\"sidebar_first\";s:12:\"Left sidebar\";s:14:\"sidebar_second\";s:13:\"Right sidebar\";s:7:\"content\";s:7:\"Content\";s:6:\"header\";s:6:\"Header\";s:6:\"footer\";s:6:\"Footer\";s:11:\"highlighted\";s:11:\"Highlighted\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:29:\"themes/garland/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:1:{s:9:\"style.css\";s:24:\"themes/garland/style.css\";}s:5:\"print\";a:1:{s:9:\"print.css\";s:24:\"themes/garland/print.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','drupal_get_form','a:2:{i:0;s:21:\"system_theme_settings\";i:1;s:7:\"garland\";}','',15,4,1,'admin/appearance/settings','admin/appearance','Garland','t','','','a:0:{}',132,'','',0,'modules/system/system.admin.inc'),('admin/appearance/settings/global','','','user_access','a:1:{i:0;s:17:\"administer themes\";}','drupal_get_form','a:1:{i:0;s:21:\"system_theme_settings\";}','',15,4,1,'admin/appearance/settings','admin/appearance','Global settings','t','','','a:0:{}',140,'','',-1,'modules/system/system.admin.inc'),('admin/appearance/settings/seven','','','_system_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:23:\"themes/seven/seven.info\";s:4:\"name\";s:5:\"seven\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"1\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:19:{s:4:\"name\";s:5:\"Seven\";s:11:\"description\";s:65:\"A simple one-column, tableless, fluid width administration theme.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:1:{s:6:\"screen\";a:2:{s:9:\"reset.css\";s:22:\"themes/seven/reset.css\";s:9:\"style.css\";s:22:\"themes/seven/style.css\";}}s:8:\"settings\";a:1:{s:20:\"shortcut_module_link\";s:1:\"1\";}s:7:\"regions\";a:8:{s:7:\"content\";s:7:\"Content\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:13:\"sidebar_first\";s:13:\"First sidebar\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:14:\"regions_hidden\";a:3:{i:0;s:13:\"sidebar_first\";i:1;s:8:\"page_top\";i:2;s:11:\"page_bottom\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:27:\"themes/seven/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:1:{s:6:\"screen\";a:2:{s:9:\"reset.css\";s:22:\"themes/seven/reset.css\";s:9:\"style.css\";s:22:\"themes/seven/style.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','drupal_get_form','a:2:{i:0;s:21:\"system_theme_settings\";i:1;s:5:\"seven\";}','',15,4,1,'admin/appearance/settings','admin/appearance','Seven','t','','','a:0:{}',132,'','',0,'modules/system/system.admin.inc'),('admin/appearance/settings/simplecorp','','','_system_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:43:\"sites/all/themes/simplecorp/simplecorp.info\";s:4:\"name\";s:10:\"simplecorp\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"1\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:16:{s:4:\"name\";s:10:\"SimpleCorp\";s:11:\"description\";s:352:\"A flexible responsive theme with many regions supported by More than (just) Themes. If you like this theme, we encourage you to try also our other Premium and Free Drupal themes.\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:4:{s:3:\"all\";a:4:{s:16:\"css/main-css.css\";s:44:\"sites/all/themes/simplecorp/css/main-css.css\";s:17:\"css/normalize.css\";s:45:\"sites/all/themes/simplecorp/css/normalize.css\";s:26:\"css/plugins/flexslider.css\";s:54:\"sites/all/themes/simplecorp/css/plugins/flexslider.css\";s:13:\"css/local.css\";s:41:\"sites/all/themes/simplecorp/css/local.css\";}s:49:\"all and (min-width: 768px) and (max-width: 959px)\";a:1:{s:11:\"css/768.css\";s:39:\"sites/all/themes/simplecorp/css/768.css\";}s:49:\"all and (min-width: 480px) and (max-width: 767px)\";a:1:{s:11:\"css/480.css\";s:39:\"sites/all/themes/simplecorp/css/480.css\";}s:26:\"all and (max-width: 479px)\";a:1:{s:11:\"css/320.css\";s:39:\"sites/all/themes/simplecorp/css/320.css\";}}s:7:\"regions\";a:20:{s:6:\"header\";s:6:\"Header\";s:10:\"navigation\";s:10:\"Navigation\";s:11:\"top_content\";s:11:\"Top Content\";s:6:\"banner\";s:6:\"Banner\";s:11:\"highlighted\";s:11:\"Highlighted\";s:7:\"content\";s:7:\"Content\";s:13:\"sidebar_first\";s:13:\"Sidebar First\";s:14:\"sidebar_second\";s:14:\"Sidebar Second\";s:14:\"bottom_content\";s:14:\"Bottom Content\";s:12:\"footer_first\";s:12:\"Footer First\";s:13:\"footer_second\";s:13:\"Footer Second\";s:12:\"footer_third\";s:12:\"Footer Third\";s:13:\"footer_fourth\";s:13:\"Footer Fourth\";s:6:\"footer\";s:6:\"Footer\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"settings\";a:34:{s:18:\"breadcrumb_display\";s:1:\"1\";s:20:\"breadcrumb_separator\";s:1:\"/\";s:19:\"main_menu_custom_js\";s:1:\"1\";s:17:\"header_tooltip_js\";s:1:\"1\";s:20:\"social_icons_display\";s:1:\"1\";s:19:\"highlighted_display\";s:1:\"1\";s:16:\"carousel_display\";s:1:\"1\";s:11:\"carousel_js\";s:1:\"1\";s:20:\"carousel_effect_time\";s:3:\"0.6\";s:15:\"carousel_effect\";s:11:\"easeOutCirc\";s:17:\"slideshow_display\";s:1:\"1\";s:12:\"slideshow_js\";s:1:\"1\";s:16:\"slideshow_effect\";s:5:\"slide\";s:21:\"slideshow_effect_time\";s:1:\"5\";s:16:\"slideshow_random\";s:1:\"0\";s:18:\"slideshow_controls\";s:1:\"1\";s:15:\"slideshow_pause\";s:1:\"1\";s:15:\"slideshow_touch\";s:1:\"1\";s:15:\"responsive_meta\";s:1:\"1\";s:18:\"responsive_respond\";s:1:\"0\";s:12:\"button_color\";s:10:\"steel_blue\";s:11:\"theme_color\";s:7:\"default\";s:14:\"columns_enable\";s:1:\"0\";s:12:\"lists_enable\";s:1:\"0\";s:12:\"boxes_enable\";s:1:\"0\";s:12:\"quicksand_js\";s:1:\"0\";s:14:\"prettyphoto_js\";s:1:\"1\";s:17:\"prettyphoto_theme\";s:10:\"pp_default\";s:24:\"prettyphoto_social_tools\";s:1:\"1\";s:17:\"jtweetanywhere_js\";s:1:\"0\";s:17:\"jtweetanywhere_id\";s:14:\"morethanthemes\";s:21:\"responsive_menu_state\";s:1:\"1\";s:27:\"responsive_menu_switchwidth\";s:3:\"960\";s:29:\"responsive_menu_topoptiontext\";s:13:\"Select a page\";}s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:42:\"sites/all/themes/simplecorp/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1530783104;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:4:{s:3:\"all\";a:4:{s:16:\"css/main-css.css\";s:44:\"sites/all/themes/simplecorp/css/main-css.css\";s:17:\"css/normalize.css\";s:45:\"sites/all/themes/simplecorp/css/normalize.css\";s:26:\"css/plugins/flexslider.css\";s:54:\"sites/all/themes/simplecorp/css/plugins/flexslider.css\";s:13:\"css/local.css\";s:41:\"sites/all/themes/simplecorp/css/local.css\";}s:49:\"all and (min-width: 768px) and (max-width: 959px)\";a:1:{s:11:\"css/768.css\";s:39:\"sites/all/themes/simplecorp/css/768.css\";}s:49:\"all and (min-width: 480px) and (max-width: 767px)\";a:1:{s:11:\"css/480.css\";s:39:\"sites/all/themes/simplecorp/css/480.css\";}s:26:\"all and (max-width: 479px)\";a:1:{s:11:\"css/320.css\";s:39:\"sites/all/themes/simplecorp/css/320.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','drupal_get_form','a:2:{i:0;s:21:\"system_theme_settings\";i:1;s:10:\"simplecorp\";}','',15,4,1,'admin/appearance/settings','admin/appearance','SimpleCorp','t','','','a:0:{}',132,'','',0,'modules/system/system.admin.inc'),('admin/appearance/settings/stark','','','_system_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:23:\"themes/stark/stark.info\";s:4:\"name\";s:5:\"stark\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"0\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:18:{s:4:\"name\";s:5:\"Stark\";s:11:\"description\";s:208:\"This theme demonstrates Drupal\'s default HTML markup and CSS styles. To learn how to build your own theme and override Drupal\'s default code, see the Theming Guide.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:10:\"layout.css\";s:23:\"themes/stark/layout.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:7:\"regions\";a:12:{s:13:\"sidebar_first\";s:12:\"Left sidebar\";s:14:\"sidebar_second\";s:13:\"Right sidebar\";s:7:\"content\";s:7:\"Content\";s:6:\"header\";s:6:\"Header\";s:6:\"footer\";s:6:\"Footer\";s:11:\"highlighted\";s:11:\"Highlighted\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:27:\"themes/stark/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:10:\"layout.css\";s:23:\"themes/stark/layout.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','drupal_get_form','a:2:{i:0;s:21:\"system_theme_settings\";i:1;s:5:\"stark\";}','',15,4,1,'admin/appearance/settings','admin/appearance','Stark','t','','','a:0:{}',132,'','',0,'modules/system/system.admin.inc'),('admin/appearance/update','','','update_manager_access','a:0:{}','drupal_get_form','a:2:{i:0;s:26:\"update_manager_update_form\";i:1;s:5:\"theme\";}','',7,3,1,'admin/appearance','admin/appearance','Update','t','','','a:0:{}',132,'','',10,'modules/update/update.manager.inc'),('admin/compact','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_compact_page','a:0:{}','',3,2,0,'','admin/compact','Compact mode','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('admin/config','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_config_page','a:0:{}','',3,2,0,'','admin/config','Configuration','t','','','a:0:{}',6,'Administer settings.','',0,'modules/system/system.admin.inc'),('admin/config/content','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/content','Content authoring','t','','','a:0:{}',6,'Settings related to formatting and authoring content.','left',-15,'modules/system/system.admin.inc'),('admin/config/content/formats','','','user_access','a:1:{i:0;s:18:\"administer filters\";}','drupal_get_form','a:1:{i:0;s:21:\"filter_admin_overview\";}','',15,4,0,'','admin/config/content/formats','Text formats','t','','','a:0:{}',6,'Configure how content input by users is filtered, including allowed HTML tags. Also allows enabling of module-provided filters.','',0,'modules/filter/filter.admin.inc'),('admin/config/content/formats/%','a:1:{i:4;s:18:\"filter_format_load\";}','','user_access','a:1:{i:0;s:18:\"administer filters\";}','filter_admin_format_page','a:1:{i:0;i:4;}','',30,5,0,'','admin/config/content/formats/%','','filter_admin_format_title','a:1:{i:0;i:4;}','','a:0:{}',6,'','',0,'modules/filter/filter.admin.inc'),('admin/config/content/formats/%/disable','a:1:{i:4;s:18:\"filter_format_load\";}','','_filter_disable_format_access','a:1:{i:0;i:4;}','drupal_get_form','a:2:{i:0;s:20:\"filter_admin_disable\";i:1;i:4;}','',61,6,0,'','admin/config/content/formats/%/disable','Disable text format','t','','','a:0:{}',6,'','',0,'modules/filter/filter.admin.inc'),('admin/config/content/formats/add','','','user_access','a:1:{i:0;s:18:\"administer filters\";}','filter_admin_format_page','a:0:{}','',31,5,1,'admin/config/content/formats','admin/config/content/formats','Add text format','t','','','a:0:{}',388,'','',1,'modules/filter/filter.admin.inc'),('admin/config/content/formats/list','','','user_access','a:1:{i:0;s:18:\"administer filters\";}','drupal_get_form','a:1:{i:0;s:21:\"filter_admin_overview\";}','',31,5,1,'admin/config/content/formats','admin/config/content/formats','List','t','','','a:0:{}',140,'','',0,'modules/filter/filter.admin.inc'),('admin/config/development','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/development','Development','t','','','a:0:{}',6,'Development tools.','right',-10,'modules/system/system.admin.inc'),('admin/config/development/logging','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:23:\"system_logging_settings\";}','',15,4,0,'','admin/config/development/logging','Logging and errors','t','','','a:0:{}',6,'Settings for logging and alerts modules. Various modules can route Drupal\'s system events to different destinations, such as syslog, database, email, etc.','',-15,'modules/system/system.admin.inc'),('admin/config/development/maintenance','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:28:\"system_site_maintenance_mode\";}','',15,4,0,'','admin/config/development/maintenance','Maintenance mode','t','','','a:0:{}',6,'Take the site offline for maintenance or bring it back online.','',-10,'modules/system/system.admin.inc'),('admin/config/development/performance','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:27:\"system_performance_settings\";}','',15,4,0,'','admin/config/development/performance','Performance','t','','','a:0:{}',6,'Enable or disable page caching for anonymous users and set CSS and JS bandwidth optimization options.','',-20,'modules/system/system.admin.inc'),('admin/config/media','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/media','Media','t','','','a:0:{}',6,'Media tools.','left',-10,'modules/system/system.admin.inc'),('admin/config/media/file-system','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:27:\"system_file_system_settings\";}','',15,4,0,'','admin/config/media/file-system','File system','t','','','a:0:{}',6,'Tell Drupal where to store uploaded files and how they are accessed.','',-10,'modules/system/system.admin.inc'),('admin/config/media/image-styles','','','user_access','a:1:{i:0;s:23:\"administer image styles\";}','image_style_list','a:0:{}','',15,4,0,'','admin/config/media/image-styles','Image styles','t','','','a:0:{}',6,'Configure styles that can be used for resizing or adjusting images on display.','',0,'modules/image/image.admin.inc'),('admin/config/media/image-styles/add','','','user_access','a:1:{i:0;s:23:\"administer image styles\";}','drupal_get_form','a:1:{i:0;s:20:\"image_style_add_form\";}','',31,5,1,'admin/config/media/image-styles','admin/config/media/image-styles','Add style','t','','','a:0:{}',388,'Add a new image style.','',2,'modules/image/image.admin.inc'),('admin/config/media/image-styles/delete/%','a:1:{i:5;a:1:{s:16:\"image_style_load\";a:2:{i:0;N;i:1;s:1:\"1\";}}}','','user_access','a:1:{i:0;s:23:\"administer image styles\";}','drupal_get_form','a:2:{i:0;s:23:\"image_style_delete_form\";i:1;i:5;}','',62,6,0,'','admin/config/media/image-styles/delete/%','Delete style','t','','','a:0:{}',6,'Delete an image style.','',0,'modules/image/image.admin.inc'),('admin/config/media/image-styles/edit/%','a:1:{i:5;s:16:\"image_style_load\";}','','user_access','a:1:{i:0;s:23:\"administer image styles\";}','drupal_get_form','a:2:{i:0;s:16:\"image_style_form\";i:1;i:5;}','',62,6,0,'','admin/config/media/image-styles/edit/%','Edit style','t','','','a:0:{}',6,'Configure an image style.','',0,'modules/image/image.admin.inc'),('admin/config/media/image-styles/edit/%/add/%','a:2:{i:5;a:1:{s:16:\"image_style_load\";a:1:{i:0;i:5;}}i:7;a:1:{s:28:\"image_effect_definition_load\";a:1:{i:0;i:5;}}}','','user_access','a:1:{i:0;s:23:\"administer image styles\";}','drupal_get_form','a:3:{i:0;s:17:\"image_effect_form\";i:1;i:5;i:2;i:7;}','',250,8,0,'','admin/config/media/image-styles/edit/%/add/%','Add image effect','t','','','a:0:{}',6,'Add a new effect to a style.','',0,'modules/image/image.admin.inc'),('admin/config/media/image-styles/edit/%/effects/%','a:2:{i:5;a:1:{s:16:\"image_style_load\";a:2:{i:0;i:5;i:1;s:1:\"3\";}}i:7;a:1:{s:17:\"image_effect_load\";a:2:{i:0;i:5;i:1;s:1:\"3\";}}}','','user_access','a:1:{i:0;s:23:\"administer image styles\";}','drupal_get_form','a:3:{i:0;s:17:\"image_effect_form\";i:1;i:5;i:2;i:7;}','',250,8,0,'','admin/config/media/image-styles/edit/%/effects/%','Edit image effect','t','','','a:0:{}',6,'Edit an existing effect within a style.','',0,'modules/image/image.admin.inc'),('admin/config/media/image-styles/edit/%/effects/%/delete','a:2:{i:5;a:1:{s:16:\"image_style_load\";a:2:{i:0;i:5;i:1;s:1:\"3\";}}i:7;a:1:{s:17:\"image_effect_load\";a:2:{i:0;i:5;i:1;s:1:\"3\";}}}','','user_access','a:1:{i:0;s:23:\"administer image styles\";}','drupal_get_form','a:3:{i:0;s:24:\"image_effect_delete_form\";i:1;i:5;i:2;i:7;}','',501,9,0,'','admin/config/media/image-styles/edit/%/effects/%/delete','Delete image effect','t','','','a:0:{}',6,'Delete an existing effect from a style.','',0,'modules/image/image.admin.inc'),('admin/config/media/image-styles/list','','','user_access','a:1:{i:0;s:23:\"administer image styles\";}','image_style_list','a:0:{}','',31,5,1,'admin/config/media/image-styles','admin/config/media/image-styles','List','t','','','a:0:{}',140,'List the current image styles on the site.','',1,'modules/image/image.admin.inc'),('admin/config/media/image-styles/revert/%','a:1:{i:5;a:1:{s:16:\"image_style_load\";a:2:{i:0;N;i:1;s:1:\"2\";}}}','','user_access','a:1:{i:0;s:23:\"administer image styles\";}','drupal_get_form','a:2:{i:0;s:23:\"image_style_revert_form\";i:1;i:5;}','',62,6,0,'','admin/config/media/image-styles/revert/%','Revert style','t','','','a:0:{}',6,'Revert an image style.','',0,'modules/image/image.admin.inc'),('admin/config/media/image-toolkit','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:29:\"system_image_toolkit_settings\";}','',15,4,0,'','admin/config/media/image-toolkit','Image toolkit','t','','','a:0:{}',6,'Choose which image toolkit to use if you have installed optional toolkits.','',20,'modules/system/system.admin.inc'),('admin/config/people','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/people','People','t','','','a:0:{}',6,'Configure user accounts.','left',-20,'modules/system/system.admin.inc'),('admin/config/people/accounts','','','user_access','a:1:{i:0;s:16:\"administer users\";}','drupal_get_form','a:1:{i:0;s:19:\"user_admin_settings\";}','',15,4,0,'','admin/config/people/accounts','Account settings','t','','','a:0:{}',6,'Configure default behavior of users, including registration requirements, e-mails, fields, and user pictures.','',-10,'modules/user/user.admin.inc'),('admin/config/people/accounts/display','','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:16:\"administer users\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"user\";i:2;s:4:\"user\";i:3;s:7:\"default\";}','',31,5,1,'admin/config/people/accounts','admin/config/people/accounts','Manage display','t','','','a:0:{}',132,'','',2,'modules/field_ui/field_ui.admin.inc'),('admin/config/people/accounts/display/default','','','_field_ui_view_mode_menu_access','a:6:{i:0;s:4:\"user\";i:1;s:4:\"user\";i:2;s:7:\"default\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:16:\"administer users\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"user\";i:2;s:4:\"user\";i:3;s:7:\"default\";}','',63,6,1,'admin/config/people/accounts/display','admin/config/people/accounts','Default','t','','','a:0:{}',140,'','',-10,'modules/field_ui/field_ui.admin.inc'),('admin/config/people/accounts/display/full','','','_field_ui_view_mode_menu_access','a:6:{i:0;s:4:\"user\";i:1;s:4:\"user\";i:2;s:4:\"full\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:16:\"administer users\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"user\";i:2;s:4:\"user\";i:3;s:4:\"full\";}','',63,6,1,'admin/config/people/accounts/display','admin/config/people/accounts','User account','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/config/people/accounts/fields','','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:16:\"administer users\";}}','drupal_get_form','a:3:{i:0;s:28:\"field_ui_field_overview_form\";i:1;s:4:\"user\";i:2;s:4:\"user\";}','',31,5,1,'admin/config/people/accounts','admin/config/people/accounts','Manage fields','t','','','a:0:{}',132,'','',1,'modules/field_ui/field_ui.admin.inc'),('admin/config/people/accounts/fields/%','a:1:{i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"user\";i:1;s:4:\"user\";i:2;s:1:\"0\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:16:\"administer users\";}}','drupal_get_form','a:2:{i:0;s:24:\"field_ui_field_edit_form\";i:1;i:5;}','',62,6,0,'','admin/config/people/accounts/fields/%','','field_ui_menu_title','a:1:{i:0;i:5;}','','a:0:{}',6,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/config/people/accounts/fields/%/delete','a:1:{i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"user\";i:1;s:4:\"user\";i:2;s:1:\"0\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:16:\"administer users\";}}','drupal_get_form','a:2:{i:0;s:26:\"field_ui_field_delete_form\";i:1;i:5;}','',125,7,1,'admin/config/people/accounts/fields/%','admin/config/people/accounts/fields/%','Delete','t','','','a:0:{}',132,'','',10,'modules/field_ui/field_ui.admin.inc'),('admin/config/people/accounts/fields/%/edit','a:1:{i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"user\";i:1;s:4:\"user\";i:2;s:1:\"0\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:16:\"administer users\";}}','drupal_get_form','a:2:{i:0;s:24:\"field_ui_field_edit_form\";i:1;i:5;}','',125,7,1,'admin/config/people/accounts/fields/%','admin/config/people/accounts/fields/%','Edit','t','','','a:0:{}',140,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/config/people/accounts/fields/%/field-settings','a:1:{i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"user\";i:1;s:4:\"user\";i:2;s:1:\"0\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:16:\"administer users\";}}','drupal_get_form','a:2:{i:0;s:28:\"field_ui_field_settings_form\";i:1;i:5;}','',125,7,1,'admin/config/people/accounts/fields/%','admin/config/people/accounts/fields/%','Field settings','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/config/people/accounts/fields/%/widget-type','a:1:{i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"user\";i:1;s:4:\"user\";i:2;s:1:\"0\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:16:\"administer users\";}}','drupal_get_form','a:2:{i:0;s:25:\"field_ui_widget_type_form\";i:1;i:5;}','',125,7,1,'admin/config/people/accounts/fields/%','admin/config/people/accounts/fields/%','Widget type','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/config/people/accounts/settings','','','user_access','a:1:{i:0;s:16:\"administer users\";}','drupal_get_form','a:1:{i:0;s:19:\"user_admin_settings\";}','',31,5,1,'admin/config/people/accounts','admin/config/people/accounts','Settings','t','','','a:0:{}',140,'','',-10,'modules/user/user.admin.inc'),('admin/config/people/ip-blocking','','','user_access','a:1:{i:0;s:18:\"block IP addresses\";}','system_ip_blocking','a:0:{}','',15,4,0,'','admin/config/people/ip-blocking','IP address blocking','t','','','a:0:{}',6,'Manage blocked IP addresses.','',10,'modules/system/system.admin.inc'),('admin/config/people/ip-blocking/delete/%','a:1:{i:5;s:15:\"blocked_ip_load\";}','','user_access','a:1:{i:0;s:18:\"block IP addresses\";}','drupal_get_form','a:2:{i:0;s:25:\"system_ip_blocking_delete\";i:1;i:5;}','',62,6,0,'','admin/config/people/ip-blocking/delete/%','Delete IP address','t','','','a:0:{}',6,'','',0,'modules/system/system.admin.inc'),('admin/config/regional','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/regional','Regional and language','t','','','a:0:{}',6,'Regional settings, localization and translation.','left',-5,'modules/system/system.admin.inc'),('admin/config/regional/date-time','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:25:\"system_date_time_settings\";}','',15,4,0,'','admin/config/regional/date-time','Date and time','t','','','a:0:{}',6,'Configure display formats for date and time.','',-15,'modules/system/system.admin.inc'),('admin/config/regional/date-time/formats','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','system_date_time_formats','a:0:{}','',31,5,1,'admin/config/regional/date-time','admin/config/regional/date-time','Formats','t','','','a:0:{}',132,'Configure display format strings for date and time.','',-9,'modules/system/system.admin.inc'),('admin/config/regional/date-time/formats/%/delete','a:1:{i:5;N;}','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:2:{i:0;s:30:\"system_date_delete_format_form\";i:1;i:5;}','',125,7,0,'','admin/config/regional/date-time/formats/%/delete','Delete date format','t','','','a:0:{}',6,'Allow users to delete a configured date format.','',0,'modules/system/system.admin.inc'),('admin/config/regional/date-time/formats/%/edit','a:1:{i:5;N;}','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:2:{i:0;s:34:\"system_configure_date_formats_form\";i:1;i:5;}','',125,7,0,'','admin/config/regional/date-time/formats/%/edit','Edit date format','t','','','a:0:{}',6,'Allow users to edit a configured date format.','',0,'modules/system/system.admin.inc'),('admin/config/regional/date-time/formats/add','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:34:\"system_configure_date_formats_form\";}','',63,6,1,'admin/config/regional/date-time/formats','admin/config/regional/date-time','Add format','t','','','a:0:{}',388,'Allow users to add additional date formats.','',-10,'modules/system/system.admin.inc'),('admin/config/regional/date-time/formats/lookup','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','system_date_time_lookup','a:0:{}','',63,6,0,'','admin/config/regional/date-time/formats/lookup','Date and time lookup','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('admin/config/regional/date-time/types','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:25:\"system_date_time_settings\";}','',31,5,1,'admin/config/regional/date-time','admin/config/regional/date-time','Types','t','','','a:0:{}',140,'Configure display formats for date and time.','',-10,'modules/system/system.admin.inc'),('admin/config/regional/date-time/types/%/delete','a:1:{i:5;N;}','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:2:{i:0;s:35:\"system_delete_date_format_type_form\";i:1;i:5;}','',125,7,0,'','admin/config/regional/date-time/types/%/delete','Delete date type','t','','','a:0:{}',6,'Allow users to delete a configured date type.','',0,'modules/system/system.admin.inc'),('admin/config/regional/date-time/types/add','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:32:\"system_add_date_format_type_form\";}','',63,6,1,'admin/config/regional/date-time/types','admin/config/regional/date-time','Add date type','t','','','a:0:{}',388,'Add new date type.','',-10,'modules/system/system.admin.inc'),('admin/config/regional/settings','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:24:\"system_regional_settings\";}','',15,4,0,'','admin/config/regional/settings','Regional settings','t','','','a:0:{}',6,'Settings for the site\'s default time zone and country.','',-20,'modules/system/system.admin.inc'),('admin/config/search','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/search','Search and metadata','t','','','a:0:{}',6,'Local site search, metadata and SEO.','left',-10,'modules/system/system.admin.inc'),('admin/config/search/clean-urls','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:25:\"system_clean_url_settings\";}','',15,4,0,'','admin/config/search/clean-urls','Clean URLs','t','','','a:0:{}',6,'Enable or disable clean URLs for your site.','',5,'modules/system/system.admin.inc'),('admin/config/search/clean-urls/check','','','1','a:0:{}','drupal_json_output','a:1:{i:0;a:1:{s:6:\"status\";b:1;}}','',31,5,0,'','admin/config/search/clean-urls/check','Clean URL check','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('admin/config/search/path','','','user_access','a:1:{i:0;s:22:\"administer url aliases\";}','path_admin_overview','a:0:{}','',15,4,0,'','admin/config/search/path','URL aliases','t','','','a:0:{}',6,'Change your site\'s URL paths by aliasing them.','',-5,'modules/path/path.admin.inc'),('admin/config/search/path/add','','','user_access','a:1:{i:0;s:22:\"administer url aliases\";}','path_admin_edit','a:0:{}','',31,5,1,'admin/config/search/path','admin/config/search/path','Add alias','t','','','a:0:{}',388,'','',0,'modules/path/path.admin.inc'),('admin/config/search/path/delete/%','a:1:{i:5;s:9:\"path_load\";}','','user_access','a:1:{i:0;s:22:\"administer url aliases\";}','drupal_get_form','a:2:{i:0;s:25:\"path_admin_delete_confirm\";i:1;i:5;}','',62,6,0,'','admin/config/search/path/delete/%','Delete alias','t','','','a:0:{}',6,'','',0,'modules/path/path.admin.inc'),('admin/config/search/path/edit/%','a:1:{i:5;s:9:\"path_load\";}','','user_access','a:1:{i:0;s:22:\"administer url aliases\";}','path_admin_edit','a:1:{i:0;i:5;}','',62,6,0,'','admin/config/search/path/edit/%','Edit alias','t','','','a:0:{}',6,'','',0,'modules/path/path.admin.inc'),('admin/config/search/path/list','','','user_access','a:1:{i:0;s:22:\"administer url aliases\";}','path_admin_overview','a:0:{}','',31,5,1,'admin/config/search/path','admin/config/search/path','List','t','','','a:0:{}',140,'','',-10,'modules/path/path.admin.inc'),('admin/config/search/settings','','','user_access','a:1:{i:0;s:17:\"administer search\";}','drupal_get_form','a:1:{i:0;s:21:\"search_admin_settings\";}','',15,4,0,'','admin/config/search/settings','Search settings','t','','','a:0:{}',6,'Configure relevance settings for search and other indexing options.','',-10,'modules/search/search.admin.inc'),('admin/config/search/settings/reindex','','','user_access','a:1:{i:0;s:17:\"administer search\";}','drupal_get_form','a:1:{i:0;s:22:\"search_reindex_confirm\";}','',31,5,0,'','admin/config/search/settings/reindex','Clear index','t','','','a:0:{}',4,'','',0,'modules/search/search.admin.inc'),('admin/config/services','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/services','Web services','t','','','a:0:{}',6,'Tools related to web services.','right',0,'modules/system/system.admin.inc'),('admin/config/services/rss-publishing','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:25:\"system_rss_feeds_settings\";}','',15,4,0,'','admin/config/services/rss-publishing','RSS publishing','t','','','a:0:{}',6,'Configure the site description, the number of items per feed and whether feeds should be titles/teasers/full-text.','',0,'modules/system/system.admin.inc'),('admin/config/system','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/system','System','t','','','a:0:{}',6,'General system related configuration.','right',-20,'modules/system/system.admin.inc'),('admin/config/system/actions','','','user_access','a:1:{i:0;s:18:\"administer actions\";}','system_actions_manage','a:0:{}','',15,4,0,'','admin/config/system/actions','Actions','t','','','a:0:{}',6,'Manage the actions defined for your site.','',0,'modules/system/system.admin.inc'),('admin/config/system/actions/configure','','','user_access','a:1:{i:0;s:18:\"administer actions\";}','drupal_get_form','a:1:{i:0;s:24:\"system_actions_configure\";}','',31,5,0,'','admin/config/system/actions/configure','Configure an advanced action','t','','','a:0:{}',4,'','',0,'modules/system/system.admin.inc'),('admin/config/system/actions/delete/%','a:1:{i:5;s:12:\"actions_load\";}','','user_access','a:1:{i:0;s:18:\"administer actions\";}','drupal_get_form','a:2:{i:0;s:26:\"system_actions_delete_form\";i:1;i:5;}','',62,6,0,'','admin/config/system/actions/delete/%','Delete action','t','','','a:0:{}',6,'Delete an action.','',0,'modules/system/system.admin.inc'),('admin/config/system/actions/manage','','','user_access','a:1:{i:0;s:18:\"administer actions\";}','system_actions_manage','a:0:{}','',31,5,1,'admin/config/system/actions','admin/config/system/actions','Manage actions','t','','','a:0:{}',140,'Manage the actions defined for your site.','',-2,'modules/system/system.admin.inc'),('admin/config/system/actions/orphan','','','user_access','a:1:{i:0;s:18:\"administer actions\";}','system_actions_remove_orphans','a:0:{}','',31,5,0,'','admin/config/system/actions/orphan','Remove orphans','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('admin/config/system/cron','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:20:\"system_cron_settings\";}','',15,4,0,'','admin/config/system/cron','Cron','t','','','a:0:{}',6,'Manage automatic site maintenance tasks.','',20,'modules/system/system.admin.inc'),('admin/config/system/site-information','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:32:\"system_site_information_settings\";}','',15,4,0,'','admin/config/system/site-information','Site information','t','','','a:0:{}',6,'Change site name, e-mail address, slogan, default front page, and number of posts per page, error pages.','',-20,'modules/system/system.admin.inc'),('admin/config/user-interface','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/user-interface','User interface','t','','','a:0:{}',6,'Tools that enhance the user interface.','right',-15,'modules/system/system.admin.inc'),('admin/config/user-interface/shortcut','','','user_access','a:1:{i:0;s:20:\"administer shortcuts\";}','shortcut_set_admin','a:0:{}','',15,4,0,'','admin/config/user-interface/shortcut','Shortcuts','t','','','a:0:{}',6,'Add and modify shortcut sets.','',0,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/shortcut/%','a:1:{i:4;s:17:\"shortcut_set_load\";}','','shortcut_set_edit_access','a:1:{i:0;i:4;}','drupal_get_form','a:2:{i:0;s:22:\"shortcut_set_customize\";i:1;i:4;}','',30,5,0,'','admin/config/user-interface/shortcut/%','Edit shortcuts','shortcut_set_title_callback','a:1:{i:0;i:4;}','','a:0:{}',6,'','',0,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/shortcut/%/add-link','a:1:{i:4;s:17:\"shortcut_set_load\";}','','shortcut_set_edit_access','a:1:{i:0;i:4;}','drupal_get_form','a:2:{i:0;s:17:\"shortcut_link_add\";i:1;i:4;}','',61,6,1,'admin/config/user-interface/shortcut/%','admin/config/user-interface/shortcut/%','Add shortcut','t','','','a:0:{}',388,'','',0,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/shortcut/%/add-link-inline','a:1:{i:4;s:17:\"shortcut_set_load\";}','','shortcut_set_edit_access','a:1:{i:0;i:4;}','shortcut_link_add_inline','a:1:{i:0;i:4;}','',61,6,0,'','admin/config/user-interface/shortcut/%/add-link-inline','Add shortcut','t','','','a:0:{}',0,'','',0,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/shortcut/%/delete','a:1:{i:4;s:17:\"shortcut_set_load\";}','','shortcut_set_delete_access','a:1:{i:0;i:4;}','drupal_get_form','a:2:{i:0;s:24:\"shortcut_set_delete_form\";i:1;i:4;}','',61,6,0,'','admin/config/user-interface/shortcut/%/delete','Delete shortcut set','t','','','a:0:{}',6,'','',0,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/shortcut/%/edit','a:1:{i:4;s:17:\"shortcut_set_load\";}','','shortcut_set_edit_access','a:1:{i:0;i:4;}','drupal_get_form','a:2:{i:0;s:22:\"shortcut_set_edit_form\";i:1;i:4;}','',61,6,1,'admin/config/user-interface/shortcut/%','admin/config/user-interface/shortcut/%','Edit set name','t','','','a:0:{}',132,'','',10,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/shortcut/%/links','a:1:{i:4;s:17:\"shortcut_set_load\";}','','shortcut_set_edit_access','a:1:{i:0;i:4;}','drupal_get_form','a:2:{i:0;s:22:\"shortcut_set_customize\";i:1;i:4;}','',61,6,1,'admin/config/user-interface/shortcut/%','admin/config/user-interface/shortcut/%','List links','t','','','a:0:{}',140,'','',0,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/shortcut/add-set','','','user_access','a:1:{i:0;s:20:\"administer shortcuts\";}','drupal_get_form','a:1:{i:0;s:21:\"shortcut_set_add_form\";}','',31,5,1,'admin/config/user-interface/shortcut','admin/config/user-interface/shortcut','Add shortcut set','t','','','a:0:{}',388,'','',0,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/shortcut/link/%','a:1:{i:5;s:14:\"menu_link_load\";}','','shortcut_link_access','a:1:{i:0;i:5;}','drupal_get_form','a:2:{i:0;s:18:\"shortcut_link_edit\";i:1;i:5;}','',62,6,0,'','admin/config/user-interface/shortcut/link/%','Edit shortcut','t','','','a:0:{}',6,'','',0,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/shortcut/link/%/delete','a:1:{i:5;s:14:\"menu_link_load\";}','','shortcut_link_access','a:1:{i:0;i:5;}','drupal_get_form','a:2:{i:0;s:20:\"shortcut_link_delete\";i:1;i:5;}','',125,7,0,'','admin/config/user-interface/shortcut/link/%/delete','Delete shortcut','t','','','a:0:{}',6,'','',0,'modules/shortcut/shortcut.admin.inc'),('admin/config/user-interface/superfish','','','user_access','a:1:{i:0;s:20:\"administer superfish\";}','drupal_get_form','a:1:{i:0;s:24:\"superfish_admin_settings\";}','',15,4,0,'','admin/config/user-interface/superfish','Superfish','t','','','a:0:{}',6,'Configure Superfish Menus','',0,'sites/all/modules/superfish/superfish.admin.inc'),('admin/config/workflow','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',7,3,0,'','admin/config/workflow','Workflow','t','','','a:0:{}',6,'Content workflow, editorial workflow tools.','right',5,'modules/system/system.admin.inc'),('admin/content','','','user_access','a:1:{i:0;s:23:\"access content overview\";}','drupal_get_form','a:1:{i:0;s:18:\"node_admin_content\";}','',3,2,0,'','admin/content','Content','t','','','a:0:{}',6,'Administer content and comments.','',-10,'modules/node/node.admin.inc'),('admin/content/comment','','','user_access','a:1:{i:0;s:19:\"administer comments\";}','comment_admin','a:0:{}','',7,3,1,'admin/content','admin/content','Comments','t','','','a:0:{}',134,'List and edit site comments and the comment approval queue.','',0,'modules/comment/comment.admin.inc'),('admin/content/comment/approval','','','user_access','a:1:{i:0;s:19:\"administer comments\";}','comment_admin','a:1:{i:0;s:8:\"approval\";}','',15,4,1,'admin/content/comment','admin/content','Unapproved comments','comment_count_unpublished','','','a:0:{}',132,'','',0,'modules/comment/comment.admin.inc'),('admin/content/comment/new','','','user_access','a:1:{i:0;s:19:\"administer comments\";}','comment_admin','a:0:{}','',15,4,1,'admin/content/comment','admin/content','Published comments','t','','','a:0:{}',140,'','',-10,'modules/comment/comment.admin.inc'),('admin/content/node','','','user_access','a:1:{i:0;s:23:\"access content overview\";}','drupal_get_form','a:1:{i:0;s:18:\"node_admin_content\";}','',7,3,1,'admin/content','admin/content','Content','t','','','a:0:{}',140,'','',-10,'modules/node/node.admin.inc'),('admin/dashboard','','','user_access','a:1:{i:0;s:16:\"access dashboard\";}','dashboard_admin','a:0:{}','',3,2,0,'','admin/dashboard','Dashboard','t','','','a:0:{}',6,'View and customize your dashboard.','',-15,''),('admin/dashboard/block-content/%/%','a:2:{i:3;N;i:4;N;}','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','dashboard_show_block_content','a:2:{i:0;i:3;i:1;i:4;}','',28,5,0,'','admin/dashboard/block-content/%/%','','t','','','a:0:{}',0,'','',0,''),('admin/dashboard/configure','','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','dashboard_admin_blocks','a:0:{}','',7,3,0,'','admin/dashboard/configure','Configure available dashboard blocks','t','','','a:0:{}',4,'Configure which blocks can be shown on the dashboard.','',0,''),('admin/dashboard/customize','','','user_access','a:1:{i:0;s:16:\"access dashboard\";}','dashboard_admin','a:1:{i:0;b:1;}','',7,3,0,'','admin/dashboard/customize','Customize dashboard','t','','','a:0:{}',4,'Customize your dashboard.','',0,''),('admin/dashboard/drawer','','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','dashboard_show_disabled','a:0:{}','',7,3,0,'','admin/dashboard/drawer','','t','','','a:0:{}',0,'','',0,''),('admin/dashboard/update','','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','dashboard_update','a:0:{}','',7,3,0,'','admin/dashboard/update','','t','','','a:0:{}',0,'','',0,''),('admin/help','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_main','a:0:{}','',3,2,0,'','admin/help','Help','t','','','a:0:{}',6,'Reference for usage, configuration, and modules.','',9,'modules/help/help.admin.inc'),('admin/help/block','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/block','block','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/blog','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/blog','blog','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/color','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/color','color','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/comment','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/comment','comment','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/contact','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/contact','contact','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/contextual','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/contextual','contextual','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/dashboard','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/dashboard','dashboard','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/dblog','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/dblog','dblog','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/field','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/field','field','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/field_sql_storage','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/field_sql_storage','field_sql_storage','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/field_ui','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/field_ui','field_ui','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/file','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/file','file','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/filter','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/filter','filter','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/help','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/help','help','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/image','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/image','image','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/libraries','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/libraries','libraries','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/list','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/list','list','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/menu','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/menu','menu','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/node','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/node','node','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/number','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/number','number','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/options','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/options','options','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/overlay','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/overlay','overlay','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/path','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/path','path','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/php','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/php','php','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/rdf','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/rdf','rdf','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/search','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/search','search','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/shortcut','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/shortcut','shortcut','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/superfish','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/superfish','superfish','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/system','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/system','system','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/taxonomy','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/taxonomy','taxonomy','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/text','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/text','text','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/toolbar','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/toolbar','toolbar','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/update','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/update','update','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/help/user','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','help_page','a:1:{i:0;i:2;}','',7,3,0,'','admin/help/user','user','t','','','a:0:{}',4,'','',0,'modules/help/help.admin.inc'),('admin/index','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_index','a:0:{}','',3,2,1,'admin','admin','Index','t','','','a:0:{}',132,'','',-18,'modules/system/system.admin.inc'),('admin/modules','','','user_access','a:1:{i:0;s:18:\"administer modules\";}','drupal_get_form','a:1:{i:0;s:14:\"system_modules\";}','',3,2,0,'','admin/modules','Modules','t','','','a:0:{}',6,'Extend site functionality.','',-2,'modules/system/system.admin.inc'),('admin/modules/install','','','update_manager_access','a:0:{}','drupal_get_form','a:2:{i:0;s:27:\"update_manager_install_form\";i:1;s:6:\"module\";}','',7,3,1,'admin/modules','admin/modules','Install new module','t','','','a:0:{}',388,'','',25,'modules/update/update.manager.inc'),('admin/modules/list','','','user_access','a:1:{i:0;s:18:\"administer modules\";}','drupal_get_form','a:1:{i:0;s:14:\"system_modules\";}','',7,3,1,'admin/modules','admin/modules','List','t','','','a:0:{}',140,'','',0,'modules/system/system.admin.inc'),('admin/modules/list/confirm','','','user_access','a:1:{i:0;s:18:\"administer modules\";}','drupal_get_form','a:1:{i:0;s:14:\"system_modules\";}','',15,4,0,'','admin/modules/list/confirm','List','t','','','a:0:{}',4,'','',0,'modules/system/system.admin.inc'),('admin/modules/uninstall','','','user_access','a:1:{i:0;s:18:\"administer modules\";}','drupal_get_form','a:1:{i:0;s:24:\"system_modules_uninstall\";}','',7,3,1,'admin/modules','admin/modules','Uninstall','t','','','a:0:{}',132,'','',20,'modules/system/system.admin.inc'),('admin/modules/uninstall/confirm','','','user_access','a:1:{i:0;s:18:\"administer modules\";}','drupal_get_form','a:1:{i:0;s:24:\"system_modules_uninstall\";}','',15,4,0,'','admin/modules/uninstall/confirm','Uninstall','t','','','a:0:{}',4,'','',0,'modules/system/system.admin.inc'),('admin/modules/update','','','update_manager_access','a:0:{}','drupal_get_form','a:2:{i:0;s:26:\"update_manager_update_form\";i:1;s:6:\"module\";}','',7,3,1,'admin/modules','admin/modules','Update','t','','','a:0:{}',132,'','',10,'modules/update/update.manager.inc'),('admin/people','','','user_access','a:1:{i:0;s:16:\"administer users\";}','user_admin','a:1:{i:0;s:4:\"list\";}','',3,2,0,'','admin/people','People','t','','','a:0:{}',6,'Manage user accounts, roles, and permissions.','left',-4,'modules/user/user.admin.inc'),('admin/people/create','','','user_access','a:1:{i:0;s:16:\"administer users\";}','user_admin','a:1:{i:0;s:6:\"create\";}','',7,3,1,'admin/people','admin/people','Add user','t','','','a:0:{}',388,'','',0,'modules/user/user.admin.inc'),('admin/people/people','','','user_access','a:1:{i:0;s:16:\"administer users\";}','user_admin','a:1:{i:0;s:4:\"list\";}','',7,3,1,'admin/people','admin/people','List','t','','','a:0:{}',140,'Find and manage people interacting with your site.','',-10,'modules/user/user.admin.inc'),('admin/people/permissions','','','user_access','a:1:{i:0;s:22:\"administer permissions\";}','drupal_get_form','a:1:{i:0;s:22:\"user_admin_permissions\";}','',7,3,1,'admin/people','admin/people','Permissions','t','','','a:0:{}',132,'Determine access to features by selecting permissions for roles.','',0,'modules/user/user.admin.inc'),('admin/people/permissions/list','','','user_access','a:1:{i:0;s:22:\"administer permissions\";}','drupal_get_form','a:1:{i:0;s:22:\"user_admin_permissions\";}','',15,4,1,'admin/people/permissions','admin/people','Permissions','t','','','a:0:{}',140,'Determine access to features by selecting permissions for roles.','',-8,'modules/user/user.admin.inc'),('admin/people/permissions/roles','','','user_access','a:1:{i:0;s:22:\"administer permissions\";}','drupal_get_form','a:1:{i:0;s:16:\"user_admin_roles\";}','',15,4,1,'admin/people/permissions','admin/people','Roles','t','','','a:0:{}',132,'List, edit, or add user roles.','',-5,'modules/user/user.admin.inc'),('admin/people/permissions/roles/delete/%','a:1:{i:5;s:14:\"user_role_load\";}','','user_role_edit_access','a:1:{i:0;i:5;}','drupal_get_form','a:2:{i:0;s:30:\"user_admin_role_delete_confirm\";i:1;i:5;}','',62,6,0,'','admin/people/permissions/roles/delete/%','Delete role','t','','','a:0:{}',6,'','',0,'modules/user/user.admin.inc'),('admin/people/permissions/roles/edit/%','a:1:{i:5;s:14:\"user_role_load\";}','','user_role_edit_access','a:1:{i:0;i:5;}','drupal_get_form','a:2:{i:0;s:15:\"user_admin_role\";i:1;i:5;}','',62,6,0,'','admin/people/permissions/roles/edit/%','Edit role','t','','','a:0:{}',6,'','',0,'modules/user/user.admin.inc'),('admin/reports','','','user_access','a:1:{i:0;s:19:\"access site reports\";}','system_admin_menu_block_page','a:0:{}','',3,2,0,'','admin/reports','Reports','t','','','a:0:{}',6,'View reports, updates, and errors.','left',5,'modules/system/system.admin.inc'),('admin/reports/access-denied','','','user_access','a:1:{i:0;s:19:\"access site reports\";}','dblog_top','a:1:{i:0;s:13:\"access denied\";}','',7,3,0,'','admin/reports/access-denied','Top \'access denied\' errors','t','','','a:0:{}',6,'View \'access denied\' errors (403s).','',0,'modules/dblog/dblog.admin.inc'),('admin/reports/dblog','','','user_access','a:1:{i:0;s:19:\"access site reports\";}','dblog_overview','a:0:{}','',7,3,0,'','admin/reports/dblog','Recent log messages','t','','','a:0:{}',6,'View events that have recently been logged.','',-1,'modules/dblog/dblog.admin.inc'),('admin/reports/event/%','a:1:{i:3;N;}','','user_access','a:1:{i:0;s:19:\"access site reports\";}','dblog_event','a:1:{i:0;i:3;}','',14,4,0,'','admin/reports/event/%','Details','t','','','a:0:{}',6,'','',0,'modules/dblog/dblog.admin.inc'),('admin/reports/fields','','','user_access','a:1:{i:0;s:24:\"administer content types\";}','field_ui_fields_list','a:0:{}','',7,3,0,'','admin/reports/fields','Field list','t','','','a:0:{}',6,'Overview of fields on all entity types.','',0,'modules/field_ui/field_ui.admin.inc'),('admin/reports/libraries','','','user_access','a:1:{i:0;s:19:\"access site reports\";}','drupal_get_form','a:1:{i:0;s:24:\"libraries_admin_overview\";}','',7,3,0,'','admin/reports/libraries','Libraries','t','','','a:0:{}',6,'An overview of libraries installed on this site.','',0,'sites/all/modules/libraries/libraries.admin.inc'),('admin/reports/libraries/%','a:1:{i:3;s:17:\"libraries_ui_load\";}','','user_access','a:1:{i:0;s:19:\"access site reports\";}','drupal_get_form','a:2:{i:0;s:35:\"libraries_admin_library_status_form\";i:1;i:3;}','',14,4,0,'','admin/reports/libraries/%','Library status report','t','','','a:0:{}',6,'Status overview for a single library','',0,'sites/all/modules/libraries/libraries.admin.inc'),('admin/reports/page-not-found','','','user_access','a:1:{i:0;s:19:\"access site reports\";}','dblog_top','a:1:{i:0;s:14:\"page not found\";}','',7,3,0,'','admin/reports/page-not-found','Top \'page not found\' errors','t','','','a:0:{}',6,'View \'page not found\' errors (404s).','',0,'modules/dblog/dblog.admin.inc'),('admin/reports/search','','','user_access','a:1:{i:0;s:19:\"access site reports\";}','dblog_top','a:1:{i:0;s:6:\"search\";}','',7,3,0,'','admin/reports/search','Top search phrases','t','','','a:0:{}',6,'View most popular search phrases.','',0,'modules/dblog/dblog.admin.inc'),('admin/reports/status','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','system_status','a:0:{}','',7,3,0,'','admin/reports/status','Status report','t','','','a:0:{}',6,'Get a status report about your site\'s operation and any detected problems.','',-60,'modules/system/system.admin.inc'),('admin/reports/status/php','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','system_php','a:0:{}','',15,4,0,'','admin/reports/status/php','PHP','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('admin/reports/status/rebuild','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','drupal_get_form','a:1:{i:0;s:30:\"node_configure_rebuild_confirm\";}','',15,4,0,'','admin/reports/status/rebuild','Rebuild permissions','t','','','a:0:{}',0,'','',0,'modules/node/node.admin.inc'),('admin/reports/status/run-cron','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','system_run_cron','a:0:{}','',15,4,0,'','admin/reports/status/run-cron','Run cron','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('admin/reports/updates','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','update_status','a:0:{}','',7,3,0,'','admin/reports/updates','Available updates','t','','','a:0:{}',6,'Get a status report about available updates for your installed modules and themes.','',-50,'modules/update/update.report.inc'),('admin/reports/updates/check','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','update_manual_status','a:0:{}','',15,4,0,'','admin/reports/updates/check','Manual update check','t','','','a:0:{}',0,'','',0,'modules/update/update.fetch.inc'),('admin/reports/updates/install','','','update_manager_access','a:0:{}','drupal_get_form','a:2:{i:0;s:27:\"update_manager_install_form\";i:1;s:6:\"report\";}','',15,4,1,'admin/reports/updates','admin/reports/updates','Install new module or theme','t','','','a:0:{}',388,'','',25,'modules/update/update.manager.inc'),('admin/reports/updates/list','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','update_status','a:0:{}','',15,4,1,'admin/reports/updates','admin/reports/updates','List','t','','','a:0:{}',140,'','',0,'modules/update/update.report.inc'),('admin/reports/updates/settings','','','user_access','a:1:{i:0;s:29:\"administer site configuration\";}','drupal_get_form','a:1:{i:0;s:15:\"update_settings\";}','',15,4,1,'admin/reports/updates','admin/reports/updates','Settings','t','','','a:0:{}',132,'','',50,'modules/update/update.settings.inc'),('admin/reports/updates/update','','','update_manager_access','a:0:{}','drupal_get_form','a:2:{i:0;s:26:\"update_manager_update_form\";i:1;s:6:\"report\";}','',15,4,1,'admin/reports/updates','admin/reports/updates','Update','t','','','a:0:{}',132,'','',10,'modules/update/update.manager.inc'),('admin/structure','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',3,2,0,'','admin/structure','Structure','t','','','a:0:{}',6,'Administer blocks, content types, menus, etc.','right',-8,'modules/system/system.admin.inc'),('admin/structure/block','','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','block_admin_display','a:1:{i:0;s:10:\"simplecorp\";}','',7,3,0,'','admin/structure/block','Blocks','t','','','a:0:{}',6,'Configure what block content appears in your site\'s sidebars and other regions.','',0,'modules/block/block.admin.inc'),('admin/structure/block/add','','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','drupal_get_form','a:1:{i:0;s:20:\"block_add_block_form\";}','',15,4,1,'admin/structure/block','admin/structure/block','Add block','t','','','a:0:{}',388,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/demo/bartik','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:25:\"themes/bartik/bartik.info\";s:4:\"name\";s:6:\"bartik\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"1\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:19:{s:4:\"name\";s:6:\"Bartik\";s:11:\"description\";s:48:\"A flexible, recolorable theme with many regions.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:3:{s:14:\"css/layout.css\";s:28:\"themes/bartik/css/layout.css\";s:13:\"css/style.css\";s:27:\"themes/bartik/css/style.css\";s:14:\"css/colors.css\";s:28:\"themes/bartik/css/colors.css\";}s:5:\"print\";a:1:{s:13:\"css/print.css\";s:27:\"themes/bartik/css/print.css\";}}s:7:\"regions\";a:20:{s:6:\"header\";s:6:\"Header\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:11:\"highlighted\";s:11:\"Highlighted\";s:8:\"featured\";s:8:\"Featured\";s:7:\"content\";s:7:\"Content\";s:13:\"sidebar_first\";s:13:\"Sidebar first\";s:14:\"sidebar_second\";s:14:\"Sidebar second\";s:14:\"triptych_first\";s:14:\"Triptych first\";s:15:\"triptych_middle\";s:15:\"Triptych middle\";s:13:\"triptych_last\";s:13:\"Triptych last\";s:18:\"footer_firstcolumn\";s:19:\"Footer first column\";s:19:\"footer_secondcolumn\";s:20:\"Footer second column\";s:18:\"footer_thirdcolumn\";s:19:\"Footer third column\";s:19:\"footer_fourthcolumn\";s:20:\"Footer fourth column\";s:6:\"footer\";s:6:\"Footer\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"settings\";a:1:{s:20:\"shortcut_module_link\";s:1:\"0\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:28:\"themes/bartik/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:3:{s:14:\"css/layout.css\";s:28:\"themes/bartik/css/layout.css\";s:13:\"css/style.css\";s:27:\"themes/bartik/css/style.css\";s:14:\"css/colors.css\";s:28:\"themes/bartik/css/colors.css\";}s:5:\"print\";a:1:{s:13:\"css/print.css\";s:27:\"themes/bartik/css/print.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_demo','a:1:{i:0;s:6:\"bartik\";}','',31,5,0,'','admin/structure/block/demo/bartik','Bartik','t','','_block_custom_theme','a:1:{i:0;s:6:\"bartik\";}',0,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/demo/garland','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:27:\"themes/garland/garland.info\";s:4:\"name\";s:7:\"garland\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"0\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:19:{s:4:\"name\";s:7:\"Garland\";s:11:\"description\";s:111:\"A multi-column theme which can be configured to modify colors and switch between fixed and fluid width layouts.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:1:{s:9:\"style.css\";s:24:\"themes/garland/style.css\";}s:5:\"print\";a:1:{s:9:\"print.css\";s:24:\"themes/garland/print.css\";}}s:8:\"settings\";a:1:{s:13:\"garland_width\";s:5:\"fluid\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:7:\"regions\";a:12:{s:13:\"sidebar_first\";s:12:\"Left sidebar\";s:14:\"sidebar_second\";s:13:\"Right sidebar\";s:7:\"content\";s:7:\"Content\";s:6:\"header\";s:6:\"Header\";s:6:\"footer\";s:6:\"Footer\";s:11:\"highlighted\";s:11:\"Highlighted\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:29:\"themes/garland/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:1:{s:9:\"style.css\";s:24:\"themes/garland/style.css\";}s:5:\"print\";a:1:{s:9:\"print.css\";s:24:\"themes/garland/print.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_demo','a:1:{i:0;s:7:\"garland\";}','',31,5,0,'','admin/structure/block/demo/garland','Garland','t','','_block_custom_theme','a:1:{i:0;s:7:\"garland\";}',0,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/demo/seven','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:23:\"themes/seven/seven.info\";s:4:\"name\";s:5:\"seven\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"1\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:19:{s:4:\"name\";s:5:\"Seven\";s:11:\"description\";s:65:\"A simple one-column, tableless, fluid width administration theme.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:1:{s:6:\"screen\";a:2:{s:9:\"reset.css\";s:22:\"themes/seven/reset.css\";s:9:\"style.css\";s:22:\"themes/seven/style.css\";}}s:8:\"settings\";a:1:{s:20:\"shortcut_module_link\";s:1:\"1\";}s:7:\"regions\";a:8:{s:7:\"content\";s:7:\"Content\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:13:\"sidebar_first\";s:13:\"First sidebar\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:14:\"regions_hidden\";a:3:{i:0;s:13:\"sidebar_first\";i:1;s:8:\"page_top\";i:2;s:11:\"page_bottom\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:27:\"themes/seven/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:1:{s:6:\"screen\";a:2:{s:9:\"reset.css\";s:22:\"themes/seven/reset.css\";s:9:\"style.css\";s:22:\"themes/seven/style.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_demo','a:1:{i:0;s:5:\"seven\";}','',31,5,0,'','admin/structure/block/demo/seven','Seven','t','','_block_custom_theme','a:1:{i:0;s:5:\"seven\";}',0,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/demo/simplecorp','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:43:\"sites/all/themes/simplecorp/simplecorp.info\";s:4:\"name\";s:10:\"simplecorp\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"1\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:16:{s:4:\"name\";s:10:\"SimpleCorp\";s:11:\"description\";s:352:\"A flexible responsive theme with many regions supported by More than (just) Themes. If you like this theme, we encourage you to try also our other Premium and Free Drupal themes.\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:4:{s:3:\"all\";a:4:{s:16:\"css/main-css.css\";s:44:\"sites/all/themes/simplecorp/css/main-css.css\";s:17:\"css/normalize.css\";s:45:\"sites/all/themes/simplecorp/css/normalize.css\";s:26:\"css/plugins/flexslider.css\";s:54:\"sites/all/themes/simplecorp/css/plugins/flexslider.css\";s:13:\"css/local.css\";s:41:\"sites/all/themes/simplecorp/css/local.css\";}s:49:\"all and (min-width: 768px) and (max-width: 959px)\";a:1:{s:11:\"css/768.css\";s:39:\"sites/all/themes/simplecorp/css/768.css\";}s:49:\"all and (min-width: 480px) and (max-width: 767px)\";a:1:{s:11:\"css/480.css\";s:39:\"sites/all/themes/simplecorp/css/480.css\";}s:26:\"all and (max-width: 479px)\";a:1:{s:11:\"css/320.css\";s:39:\"sites/all/themes/simplecorp/css/320.css\";}}s:7:\"regions\";a:20:{s:6:\"header\";s:6:\"Header\";s:10:\"navigation\";s:10:\"Navigation\";s:11:\"top_content\";s:11:\"Top Content\";s:6:\"banner\";s:6:\"Banner\";s:11:\"highlighted\";s:11:\"Highlighted\";s:7:\"content\";s:7:\"Content\";s:13:\"sidebar_first\";s:13:\"Sidebar First\";s:14:\"sidebar_second\";s:14:\"Sidebar Second\";s:14:\"bottom_content\";s:14:\"Bottom Content\";s:12:\"footer_first\";s:12:\"Footer First\";s:13:\"footer_second\";s:13:\"Footer Second\";s:12:\"footer_third\";s:12:\"Footer Third\";s:13:\"footer_fourth\";s:13:\"Footer Fourth\";s:6:\"footer\";s:6:\"Footer\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"settings\";a:34:{s:18:\"breadcrumb_display\";s:1:\"1\";s:20:\"breadcrumb_separator\";s:1:\"/\";s:19:\"main_menu_custom_js\";s:1:\"1\";s:17:\"header_tooltip_js\";s:1:\"1\";s:20:\"social_icons_display\";s:1:\"1\";s:19:\"highlighted_display\";s:1:\"1\";s:16:\"carousel_display\";s:1:\"1\";s:11:\"carousel_js\";s:1:\"1\";s:20:\"carousel_effect_time\";s:3:\"0.6\";s:15:\"carousel_effect\";s:11:\"easeOutCirc\";s:17:\"slideshow_display\";s:1:\"1\";s:12:\"slideshow_js\";s:1:\"1\";s:16:\"slideshow_effect\";s:5:\"slide\";s:21:\"slideshow_effect_time\";s:1:\"5\";s:16:\"slideshow_random\";s:1:\"0\";s:18:\"slideshow_controls\";s:1:\"1\";s:15:\"slideshow_pause\";s:1:\"1\";s:15:\"slideshow_touch\";s:1:\"1\";s:15:\"responsive_meta\";s:1:\"1\";s:18:\"responsive_respond\";s:1:\"0\";s:12:\"button_color\";s:10:\"steel_blue\";s:11:\"theme_color\";s:7:\"default\";s:14:\"columns_enable\";s:1:\"0\";s:12:\"lists_enable\";s:1:\"0\";s:12:\"boxes_enable\";s:1:\"0\";s:12:\"quicksand_js\";s:1:\"0\";s:14:\"prettyphoto_js\";s:1:\"1\";s:17:\"prettyphoto_theme\";s:10:\"pp_default\";s:24:\"prettyphoto_social_tools\";s:1:\"1\";s:17:\"jtweetanywhere_js\";s:1:\"0\";s:17:\"jtweetanywhere_id\";s:14:\"morethanthemes\";s:21:\"responsive_menu_state\";s:1:\"1\";s:27:\"responsive_menu_switchwidth\";s:3:\"960\";s:29:\"responsive_menu_topoptiontext\";s:13:\"Select a page\";}s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:42:\"sites/all/themes/simplecorp/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1530783104;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:4:{s:3:\"all\";a:4:{s:16:\"css/main-css.css\";s:44:\"sites/all/themes/simplecorp/css/main-css.css\";s:17:\"css/normalize.css\";s:45:\"sites/all/themes/simplecorp/css/normalize.css\";s:26:\"css/plugins/flexslider.css\";s:54:\"sites/all/themes/simplecorp/css/plugins/flexslider.css\";s:13:\"css/local.css\";s:41:\"sites/all/themes/simplecorp/css/local.css\";}s:49:\"all and (min-width: 768px) and (max-width: 959px)\";a:1:{s:11:\"css/768.css\";s:39:\"sites/all/themes/simplecorp/css/768.css\";}s:49:\"all and (min-width: 480px) and (max-width: 767px)\";a:1:{s:11:\"css/480.css\";s:39:\"sites/all/themes/simplecorp/css/480.css\";}s:26:\"all and (max-width: 479px)\";a:1:{s:11:\"css/320.css\";s:39:\"sites/all/themes/simplecorp/css/320.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_demo','a:1:{i:0;s:10:\"simplecorp\";}','',31,5,0,'','admin/structure/block/demo/simplecorp','SimpleCorp','t','','_block_custom_theme','a:1:{i:0;s:10:\"simplecorp\";}',0,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/demo/stark','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:23:\"themes/stark/stark.info\";s:4:\"name\";s:5:\"stark\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"0\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:18:{s:4:\"name\";s:5:\"Stark\";s:11:\"description\";s:208:\"This theme demonstrates Drupal\'s default HTML markup and CSS styles. To learn how to build your own theme and override Drupal\'s default code, see the Theming Guide.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:10:\"layout.css\";s:23:\"themes/stark/layout.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:7:\"regions\";a:12:{s:13:\"sidebar_first\";s:12:\"Left sidebar\";s:14:\"sidebar_second\";s:13:\"Right sidebar\";s:7:\"content\";s:7:\"Content\";s:6:\"header\";s:6:\"Header\";s:6:\"footer\";s:6:\"Footer\";s:11:\"highlighted\";s:11:\"Highlighted\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:27:\"themes/stark/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:10:\"layout.css\";s:23:\"themes/stark/layout.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_demo','a:1:{i:0;s:5:\"stark\";}','',31,5,0,'','admin/structure/block/demo/stark','Stark','t','','_block_custom_theme','a:1:{i:0;s:5:\"stark\";}',0,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/list/bartik','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:25:\"themes/bartik/bartik.info\";s:4:\"name\";s:6:\"bartik\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"1\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:19:{s:4:\"name\";s:6:\"Bartik\";s:11:\"description\";s:48:\"A flexible, recolorable theme with many regions.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:3:{s:14:\"css/layout.css\";s:28:\"themes/bartik/css/layout.css\";s:13:\"css/style.css\";s:27:\"themes/bartik/css/style.css\";s:14:\"css/colors.css\";s:28:\"themes/bartik/css/colors.css\";}s:5:\"print\";a:1:{s:13:\"css/print.css\";s:27:\"themes/bartik/css/print.css\";}}s:7:\"regions\";a:20:{s:6:\"header\";s:6:\"Header\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:11:\"highlighted\";s:11:\"Highlighted\";s:8:\"featured\";s:8:\"Featured\";s:7:\"content\";s:7:\"Content\";s:13:\"sidebar_first\";s:13:\"Sidebar first\";s:14:\"sidebar_second\";s:14:\"Sidebar second\";s:14:\"triptych_first\";s:14:\"Triptych first\";s:15:\"triptych_middle\";s:15:\"Triptych middle\";s:13:\"triptych_last\";s:13:\"Triptych last\";s:18:\"footer_firstcolumn\";s:19:\"Footer first column\";s:19:\"footer_secondcolumn\";s:20:\"Footer second column\";s:18:\"footer_thirdcolumn\";s:19:\"Footer third column\";s:19:\"footer_fourthcolumn\";s:20:\"Footer fourth column\";s:6:\"footer\";s:6:\"Footer\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"settings\";a:1:{s:20:\"shortcut_module_link\";s:1:\"0\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:28:\"themes/bartik/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:3:{s:14:\"css/layout.css\";s:28:\"themes/bartik/css/layout.css\";s:13:\"css/style.css\";s:27:\"themes/bartik/css/style.css\";s:14:\"css/colors.css\";s:28:\"themes/bartik/css/colors.css\";}s:5:\"print\";a:1:{s:13:\"css/print.css\";s:27:\"themes/bartik/css/print.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_display','a:1:{i:0;s:6:\"bartik\";}','',31,5,1,'admin/structure/block','admin/structure/block','Bartik','t','','','a:0:{}',132,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/list/bartik/add','','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','drupal_get_form','a:1:{i:0;s:20:\"block_add_block_form\";}','',63,6,1,'admin/structure/block/list/bartik','admin/structure/block','Add block','t','','','a:0:{}',388,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/list/garland','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:27:\"themes/garland/garland.info\";s:4:\"name\";s:7:\"garland\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"0\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:19:{s:4:\"name\";s:7:\"Garland\";s:11:\"description\";s:111:\"A multi-column theme which can be configured to modify colors and switch between fixed and fluid width layouts.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:1:{s:9:\"style.css\";s:24:\"themes/garland/style.css\";}s:5:\"print\";a:1:{s:9:\"print.css\";s:24:\"themes/garland/print.css\";}}s:8:\"settings\";a:1:{s:13:\"garland_width\";s:5:\"fluid\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:7:\"regions\";a:12:{s:13:\"sidebar_first\";s:12:\"Left sidebar\";s:14:\"sidebar_second\";s:13:\"Right sidebar\";s:7:\"content\";s:7:\"Content\";s:6:\"header\";s:6:\"Header\";s:6:\"footer\";s:6:\"Footer\";s:11:\"highlighted\";s:11:\"Highlighted\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:29:\"themes/garland/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:1:{s:9:\"style.css\";s:24:\"themes/garland/style.css\";}s:5:\"print\";a:1:{s:9:\"print.css\";s:24:\"themes/garland/print.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_display','a:1:{i:0;s:7:\"garland\";}','',31,5,1,'admin/structure/block','admin/structure/block','Garland','t','','','a:0:{}',132,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/list/garland/add','','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','drupal_get_form','a:1:{i:0;s:20:\"block_add_block_form\";}','',63,6,1,'admin/structure/block/list/garland','admin/structure/block','Add block','t','','','a:0:{}',388,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/list/seven','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:23:\"themes/seven/seven.info\";s:4:\"name\";s:5:\"seven\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"1\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:19:{s:4:\"name\";s:5:\"Seven\";s:11:\"description\";s:65:\"A simple one-column, tableless, fluid width administration theme.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:1:{s:6:\"screen\";a:2:{s:9:\"reset.css\";s:22:\"themes/seven/reset.css\";s:9:\"style.css\";s:22:\"themes/seven/style.css\";}}s:8:\"settings\";a:1:{s:20:\"shortcut_module_link\";s:1:\"1\";}s:7:\"regions\";a:8:{s:7:\"content\";s:7:\"Content\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:13:\"sidebar_first\";s:13:\"First sidebar\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:14:\"regions_hidden\";a:3:{i:0;s:13:\"sidebar_first\";i:1;s:8:\"page_top\";i:2;s:11:\"page_bottom\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:27:\"themes/seven/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:1:{s:6:\"screen\";a:2:{s:9:\"reset.css\";s:22:\"themes/seven/reset.css\";s:9:\"style.css\";s:22:\"themes/seven/style.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_display','a:1:{i:0;s:5:\"seven\";}','',31,5,1,'admin/structure/block','admin/structure/block','Seven','t','','','a:0:{}',132,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/list/seven/add','','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','drupal_get_form','a:1:{i:0;s:20:\"block_add_block_form\";}','',63,6,1,'admin/structure/block/list/seven','admin/structure/block','Add block','t','','','a:0:{}',388,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/list/simplecorp','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:43:\"sites/all/themes/simplecorp/simplecorp.info\";s:4:\"name\";s:10:\"simplecorp\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"1\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:16:{s:4:\"name\";s:10:\"SimpleCorp\";s:11:\"description\";s:352:\"A flexible responsive theme with many regions supported by More than (just) Themes. If you like this theme, we encourage you to try also our other Premium and Free Drupal themes.\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:4:{s:3:\"all\";a:4:{s:16:\"css/main-css.css\";s:44:\"sites/all/themes/simplecorp/css/main-css.css\";s:17:\"css/normalize.css\";s:45:\"sites/all/themes/simplecorp/css/normalize.css\";s:26:\"css/plugins/flexslider.css\";s:54:\"sites/all/themes/simplecorp/css/plugins/flexslider.css\";s:13:\"css/local.css\";s:41:\"sites/all/themes/simplecorp/css/local.css\";}s:49:\"all and (min-width: 768px) and (max-width: 959px)\";a:1:{s:11:\"css/768.css\";s:39:\"sites/all/themes/simplecorp/css/768.css\";}s:49:\"all and (min-width: 480px) and (max-width: 767px)\";a:1:{s:11:\"css/480.css\";s:39:\"sites/all/themes/simplecorp/css/480.css\";}s:26:\"all and (max-width: 479px)\";a:1:{s:11:\"css/320.css\";s:39:\"sites/all/themes/simplecorp/css/320.css\";}}s:7:\"regions\";a:20:{s:6:\"header\";s:6:\"Header\";s:10:\"navigation\";s:10:\"Navigation\";s:11:\"top_content\";s:11:\"Top Content\";s:6:\"banner\";s:6:\"Banner\";s:11:\"highlighted\";s:11:\"Highlighted\";s:7:\"content\";s:7:\"Content\";s:13:\"sidebar_first\";s:13:\"Sidebar First\";s:14:\"sidebar_second\";s:14:\"Sidebar Second\";s:14:\"bottom_content\";s:14:\"Bottom Content\";s:12:\"footer_first\";s:12:\"Footer First\";s:13:\"footer_second\";s:13:\"Footer Second\";s:12:\"footer_third\";s:12:\"Footer Third\";s:13:\"footer_fourth\";s:13:\"Footer Fourth\";s:6:\"footer\";s:6:\"Footer\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"settings\";a:34:{s:18:\"breadcrumb_display\";s:1:\"1\";s:20:\"breadcrumb_separator\";s:1:\"/\";s:19:\"main_menu_custom_js\";s:1:\"1\";s:17:\"header_tooltip_js\";s:1:\"1\";s:20:\"social_icons_display\";s:1:\"1\";s:19:\"highlighted_display\";s:1:\"1\";s:16:\"carousel_display\";s:1:\"1\";s:11:\"carousel_js\";s:1:\"1\";s:20:\"carousel_effect_time\";s:3:\"0.6\";s:15:\"carousel_effect\";s:11:\"easeOutCirc\";s:17:\"slideshow_display\";s:1:\"1\";s:12:\"slideshow_js\";s:1:\"1\";s:16:\"slideshow_effect\";s:5:\"slide\";s:21:\"slideshow_effect_time\";s:1:\"5\";s:16:\"slideshow_random\";s:1:\"0\";s:18:\"slideshow_controls\";s:1:\"1\";s:15:\"slideshow_pause\";s:1:\"1\";s:15:\"slideshow_touch\";s:1:\"1\";s:15:\"responsive_meta\";s:1:\"1\";s:18:\"responsive_respond\";s:1:\"0\";s:12:\"button_color\";s:10:\"steel_blue\";s:11:\"theme_color\";s:7:\"default\";s:14:\"columns_enable\";s:1:\"0\";s:12:\"lists_enable\";s:1:\"0\";s:12:\"boxes_enable\";s:1:\"0\";s:12:\"quicksand_js\";s:1:\"0\";s:14:\"prettyphoto_js\";s:1:\"1\";s:17:\"prettyphoto_theme\";s:10:\"pp_default\";s:24:\"prettyphoto_social_tools\";s:1:\"1\";s:17:\"jtweetanywhere_js\";s:1:\"0\";s:17:\"jtweetanywhere_id\";s:14:\"morethanthemes\";s:21:\"responsive_menu_state\";s:1:\"1\";s:27:\"responsive_menu_switchwidth\";s:3:\"960\";s:29:\"responsive_menu_topoptiontext\";s:13:\"Select a page\";}s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:42:\"sites/all/themes/simplecorp/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1530783104;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:4:{s:3:\"all\";a:4:{s:16:\"css/main-css.css\";s:44:\"sites/all/themes/simplecorp/css/main-css.css\";s:17:\"css/normalize.css\";s:45:\"sites/all/themes/simplecorp/css/normalize.css\";s:26:\"css/plugins/flexslider.css\";s:54:\"sites/all/themes/simplecorp/css/plugins/flexslider.css\";s:13:\"css/local.css\";s:41:\"sites/all/themes/simplecorp/css/local.css\";}s:49:\"all and (min-width: 768px) and (max-width: 959px)\";a:1:{s:11:\"css/768.css\";s:39:\"sites/all/themes/simplecorp/css/768.css\";}s:49:\"all and (min-width: 480px) and (max-width: 767px)\";a:1:{s:11:\"css/480.css\";s:39:\"sites/all/themes/simplecorp/css/480.css\";}s:26:\"all and (max-width: 479px)\";a:1:{s:11:\"css/320.css\";s:39:\"sites/all/themes/simplecorp/css/320.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_display','a:1:{i:0;s:10:\"simplecorp\";}','',31,5,1,'admin/structure/block','admin/structure/block','SimpleCorp','t','','','a:0:{}',140,'','',-10,'modules/block/block.admin.inc'),('admin/structure/block/list/stark','','','_block_themes_access','a:1:{i:0;O:8:\"stdClass\":12:{s:8:\"filename\";s:23:\"themes/stark/stark.info\";s:4:\"name\";s:5:\"stark\";s:4:\"type\";s:5:\"theme\";s:5:\"owner\";s:45:\"themes/engines/phptemplate/phptemplate.engine\";s:6:\"status\";s:1:\"0\";s:9:\"bootstrap\";s:1:\"0\";s:14:\"schema_version\";s:2:\"-1\";s:6:\"weight\";s:1:\"0\";s:4:\"info\";a:18:{s:4:\"name\";s:5:\"Stark\";s:11:\"description\";s:208:\"This theme demonstrates Drupal\'s default HTML markup and CSS styles. To learn how to build your own theme and override Drupal\'s default code, see the Theming Guide.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:10:\"layout.css\";s:23:\"themes/stark/layout.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:7:\"regions\";a:12:{s:13:\"sidebar_first\";s:12:\"Left sidebar\";s:14:\"sidebar_second\";s:13:\"Right sidebar\";s:7:\"content\";s:7:\"Content\";s:6:\"header\";s:6:\"Header\";s:6:\"footer\";s:6:\"Footer\";s:11:\"highlighted\";s:11:\"Highlighted\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:27:\"themes/stark/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}s:6:\"prefix\";s:11:\"phptemplate\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:10:\"layout.css\";s:23:\"themes/stark/layout.css\";}}s:6:\"engine\";s:11:\"phptemplate\";}}','block_admin_display','a:1:{i:0;s:5:\"stark\";}','',31,5,1,'admin/structure/block','admin/structure/block','Stark','t','','','a:0:{}',132,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/list/stark/add','','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','drupal_get_form','a:1:{i:0;s:20:\"block_add_block_form\";}','',63,6,1,'admin/structure/block/list/stark','admin/structure/block','Add block','t','','','a:0:{}',388,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/manage/%/%','a:2:{i:4;N;i:5;N;}','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','drupal_get_form','a:3:{i:0;s:21:\"block_admin_configure\";i:1;i:4;i:2;i:5;}','',60,6,0,'','admin/structure/block/manage/%/%','Configure block','t','','','a:0:{}',6,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/manage/%/%/configure','a:2:{i:4;N;i:5;N;}','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','drupal_get_form','a:3:{i:0;s:21:\"block_admin_configure\";i:1;i:4;i:2;i:5;}','',121,7,2,'admin/structure/block/manage/%/%','admin/structure/block/manage/%/%','Configure block','t','','','a:0:{}',140,'','',0,'modules/block/block.admin.inc'),('admin/structure/block/manage/%/%/delete','a:2:{i:4;N;i:5;N;}','','user_access','a:1:{i:0;s:17:\"administer blocks\";}','drupal_get_form','a:3:{i:0;s:25:\"block_custom_block_delete\";i:1;i:4;i:2;i:5;}','',121,7,0,'admin/structure/block/manage/%/%','admin/structure/block/manage/%/%','Delete block','t','','','a:0:{}',132,'','',0,'modules/block/block.admin.inc'),('admin/structure/contact','','','user_access','a:1:{i:0;s:24:\"administer contact forms\";}','contact_category_list','a:0:{}','',7,3,0,'','admin/structure/contact','Contact form','t','','','a:0:{}',6,'Create a system contact form and set up categories for the form to use.','',0,'modules/contact/contact.admin.inc'),('admin/structure/contact/add','','','user_access','a:1:{i:0;s:24:\"administer contact forms\";}','drupal_get_form','a:1:{i:0;s:26:\"contact_category_edit_form\";}','',15,4,1,'admin/structure/contact','admin/structure/contact','Add category','t','','','a:0:{}',388,'','',1,'modules/contact/contact.admin.inc'),('admin/structure/contact/delete/%','a:1:{i:4;s:12:\"contact_load\";}','','user_access','a:1:{i:0;s:24:\"administer contact forms\";}','drupal_get_form','a:2:{i:0;s:28:\"contact_category_delete_form\";i:1;i:4;}','',30,5,0,'','admin/structure/contact/delete/%','Delete contact','t','','','a:0:{}',6,'','',0,'modules/contact/contact.admin.inc'),('admin/structure/contact/edit/%','a:1:{i:4;s:12:\"contact_load\";}','','user_access','a:1:{i:0;s:24:\"administer contact forms\";}','drupal_get_form','a:2:{i:0;s:26:\"contact_category_edit_form\";i:1;i:4;}','',30,5,0,'','admin/structure/contact/edit/%','Edit contact category','t','','','a:0:{}',6,'','',0,'modules/contact/contact.admin.inc'),('admin/structure/menu','','','user_access','a:1:{i:0;s:15:\"administer menu\";}','menu_overview_page','a:0:{}','',7,3,0,'','admin/structure/menu','Menus','t','','','a:0:{}',6,'Add new menus to your site, edit existing menus, and rename and reorganize menu links.','',0,'modules/menu/menu.admin.inc'),('admin/structure/menu/add','','','user_access','a:1:{i:0;s:15:\"administer menu\";}','drupal_get_form','a:2:{i:0;s:14:\"menu_edit_menu\";i:1;s:3:\"add\";}','',15,4,1,'admin/structure/menu','admin/structure/menu','Add menu','t','','','a:0:{}',388,'','',0,'modules/menu/menu.admin.inc'),('admin/structure/menu/item/%/delete','a:1:{i:4;s:14:\"menu_link_load\";}','','user_access','a:1:{i:0;s:15:\"administer menu\";}','menu_item_delete_page','a:1:{i:0;i:4;}','',61,6,0,'','admin/structure/menu/item/%/delete','Delete menu link','t','','','a:0:{}',6,'','',0,'modules/menu/menu.admin.inc'),('admin/structure/menu/item/%/edit','a:1:{i:4;s:14:\"menu_link_load\";}','','user_access','a:1:{i:0;s:15:\"administer menu\";}','drupal_get_form','a:4:{i:0;s:14:\"menu_edit_item\";i:1;s:4:\"edit\";i:2;i:4;i:3;N;}','',61,6,0,'','admin/structure/menu/item/%/edit','Edit menu link','t','','','a:0:{}',6,'','',0,'modules/menu/menu.admin.inc'),('admin/structure/menu/item/%/reset','a:1:{i:4;s:14:\"menu_link_load\";}','','user_access','a:1:{i:0;s:15:\"administer menu\";}','drupal_get_form','a:2:{i:0;s:23:\"menu_reset_item_confirm\";i:1;i:4;}','',61,6,0,'','admin/structure/menu/item/%/reset','Reset menu link','t','','','a:0:{}',6,'','',0,'modules/menu/menu.admin.inc'),('admin/structure/menu/list','','','user_access','a:1:{i:0;s:15:\"administer menu\";}','menu_overview_page','a:0:{}','',15,4,1,'admin/structure/menu','admin/structure/menu','List menus','t','','','a:0:{}',140,'','',-10,'modules/menu/menu.admin.inc'),('admin/structure/menu/manage/%','a:1:{i:4;s:9:\"menu_load\";}','','user_access','a:1:{i:0;s:15:\"administer menu\";}','drupal_get_form','a:2:{i:0;s:18:\"menu_overview_form\";i:1;i:4;}','',30,5,0,'','admin/structure/menu/manage/%','Customize menu','menu_overview_title','a:1:{i:0;i:4;}','','a:0:{}',6,'','',0,'modules/menu/menu.admin.inc'),('admin/structure/menu/manage/%/add','a:1:{i:4;s:9:\"menu_load\";}','','user_access','a:1:{i:0;s:15:\"administer menu\";}','drupal_get_form','a:4:{i:0;s:14:\"menu_edit_item\";i:1;s:3:\"add\";i:2;N;i:3;i:4;}','',61,6,1,'admin/structure/menu/manage/%','admin/structure/menu/manage/%','Add link','t','','','a:0:{}',388,'','',0,'modules/menu/menu.admin.inc'),('admin/structure/menu/manage/%/delete','a:1:{i:4;s:9:\"menu_load\";}','','user_access','a:1:{i:0;s:15:\"administer menu\";}','menu_delete_menu_page','a:1:{i:0;i:4;}','',61,6,0,'','admin/structure/menu/manage/%/delete','Delete menu','t','','','a:0:{}',6,'','',0,'modules/menu/menu.admin.inc'),('admin/structure/menu/manage/%/edit','a:1:{i:4;s:9:\"menu_load\";}','','user_access','a:1:{i:0;s:15:\"administer menu\";}','drupal_get_form','a:3:{i:0;s:14:\"menu_edit_menu\";i:1;s:4:\"edit\";i:2;i:4;}','',61,6,3,'admin/structure/menu/manage/%','admin/structure/menu/manage/%','Edit menu','t','','','a:0:{}',132,'','',0,'modules/menu/menu.admin.inc'),('admin/structure/menu/manage/%/list','a:1:{i:4;s:9:\"menu_load\";}','','user_access','a:1:{i:0;s:15:\"administer menu\";}','drupal_get_form','a:2:{i:0;s:18:\"menu_overview_form\";i:1;i:4;}','',61,6,3,'admin/structure/menu/manage/%','admin/structure/menu/manage/%','List links','t','','','a:0:{}',140,'','',-10,'modules/menu/menu.admin.inc'),('admin/structure/menu/parents','','','user_access','a:1:{i:0;s:15:\"administer menu\";}','menu_parent_options_js','a:0:{}','',15,4,0,'','admin/structure/menu/parents','Parent menu items','t','','','a:0:{}',0,'','',0,''),('admin/structure/menu/settings','','','user_access','a:1:{i:0;s:15:\"administer menu\";}','drupal_get_form','a:1:{i:0;s:14:\"menu_configure\";}','',15,4,1,'admin/structure/menu','admin/structure/menu','Settings','t','','','a:0:{}',132,'','',5,'modules/menu/menu.admin.inc'),('admin/structure/taxonomy','','','user_access','a:1:{i:0;s:19:\"administer taxonomy\";}','drupal_get_form','a:1:{i:0;s:30:\"taxonomy_overview_vocabularies\";}','',7,3,0,'','admin/structure/taxonomy','Taxonomy','t','','','a:0:{}',6,'Manage tagging, categorization, and classification of your content.','',0,'modules/taxonomy/taxonomy.admin.inc'),('admin/structure/taxonomy/%','a:1:{i:3;s:37:\"taxonomy_vocabulary_machine_name_load\";}','','user_access','a:1:{i:0;s:19:\"administer taxonomy\";}','drupal_get_form','a:2:{i:0;s:23:\"taxonomy_overview_terms\";i:1;i:3;}','',14,4,0,'','admin/structure/taxonomy/%','','entity_label','a:2:{i:0;s:19:\"taxonomy_vocabulary\";i:1;i:3;}','','a:0:{}',6,'','',0,'modules/taxonomy/taxonomy.admin.inc'),('admin/structure/taxonomy/%/add','a:1:{i:3;s:37:\"taxonomy_vocabulary_machine_name_load\";}','','user_access','a:1:{i:0;s:19:\"administer taxonomy\";}','drupal_get_form','a:3:{i:0;s:18:\"taxonomy_form_term\";i:1;a:0:{}i:2;i:3;}','',29,5,1,'admin/structure/taxonomy/%','admin/structure/taxonomy/%','Add term','t','','','a:0:{}',388,'','',0,'modules/taxonomy/taxonomy.admin.inc'),('admin/structure/taxonomy/%/display','a:1:{i:3;s:37:\"taxonomy_vocabulary_machine_name_load\";}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:19:\"administer taxonomy\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:13:\"taxonomy_term\";i:2;i:3;i:3;s:7:\"default\";}','',29,5,1,'admin/structure/taxonomy/%','admin/structure/taxonomy/%','Manage display','t','','','a:0:{}',132,'','',2,'modules/field_ui/field_ui.admin.inc'),('admin/structure/taxonomy/%/display/default','a:1:{i:3;s:37:\"taxonomy_vocabulary_machine_name_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:7:\"default\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:19:\"administer taxonomy\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:13:\"taxonomy_term\";i:2;i:3;i:3;s:7:\"default\";}','',59,6,1,'admin/structure/taxonomy/%/display','admin/structure/taxonomy/%','Default','t','','','a:0:{}',140,'','',-10,'modules/field_ui/field_ui.admin.inc'),('admin/structure/taxonomy/%/display/full','a:1:{i:3;s:37:\"taxonomy_vocabulary_machine_name_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:4:\"full\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:19:\"administer taxonomy\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:13:\"taxonomy_term\";i:2;i:3;i:3;s:4:\"full\";}','',59,6,1,'admin/structure/taxonomy/%/display','admin/structure/taxonomy/%','Taxonomy term page','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/taxonomy/%/edit','a:1:{i:3;s:37:\"taxonomy_vocabulary_machine_name_load\";}','','user_access','a:1:{i:0;s:19:\"administer taxonomy\";}','drupal_get_form','a:2:{i:0;s:24:\"taxonomy_form_vocabulary\";i:1;i:3;}','',29,5,1,'admin/structure/taxonomy/%','admin/structure/taxonomy/%','Edit','t','','','a:0:{}',132,'','',-10,'modules/taxonomy/taxonomy.admin.inc'),('admin/structure/taxonomy/%/fields','a:1:{i:3;s:37:\"taxonomy_vocabulary_machine_name_load\";}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:19:\"administer taxonomy\";}}','drupal_get_form','a:3:{i:0;s:28:\"field_ui_field_overview_form\";i:1;s:13:\"taxonomy_term\";i:2;i:3;}','',29,5,1,'admin/structure/taxonomy/%','admin/structure/taxonomy/%','Manage fields','t','','','a:0:{}',132,'','',1,'modules/field_ui/field_ui.admin.inc'),('admin/structure/taxonomy/%/fields/%','a:2:{i:3;a:1:{s:37:\"taxonomy_vocabulary_machine_name_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:19:\"administer taxonomy\";}}','drupal_get_form','a:2:{i:0;s:24:\"field_ui_field_edit_form\";i:1;i:5;}','',58,6,0,'','admin/structure/taxonomy/%/fields/%','','field_ui_menu_title','a:1:{i:0;i:5;}','','a:0:{}',6,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/taxonomy/%/fields/%/delete','a:2:{i:3;a:1:{s:37:\"taxonomy_vocabulary_machine_name_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:19:\"administer taxonomy\";}}','drupal_get_form','a:2:{i:0;s:26:\"field_ui_field_delete_form\";i:1;i:5;}','',117,7,1,'admin/structure/taxonomy/%/fields/%','admin/structure/taxonomy/%/fields/%','Delete','t','','','a:0:{}',132,'','',10,'modules/field_ui/field_ui.admin.inc'),('admin/structure/taxonomy/%/fields/%/edit','a:2:{i:3;a:1:{s:37:\"taxonomy_vocabulary_machine_name_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:19:\"administer taxonomy\";}}','drupal_get_form','a:2:{i:0;s:24:\"field_ui_field_edit_form\";i:1;i:5;}','',117,7,1,'admin/structure/taxonomy/%/fields/%','admin/structure/taxonomy/%/fields/%','Edit','t','','','a:0:{}',140,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/taxonomy/%/fields/%/field-settings','a:2:{i:3;a:1:{s:37:\"taxonomy_vocabulary_machine_name_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:19:\"administer taxonomy\";}}','drupal_get_form','a:2:{i:0;s:28:\"field_ui_field_settings_form\";i:1;i:5;}','',117,7,1,'admin/structure/taxonomy/%/fields/%','admin/structure/taxonomy/%/fields/%','Field settings','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/taxonomy/%/fields/%/widget-type','a:2:{i:3;a:1:{s:37:\"taxonomy_vocabulary_machine_name_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}i:5;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:13:\"taxonomy_term\";i:1;i:3;i:2;s:1:\"3\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:19:\"administer taxonomy\";}}','drupal_get_form','a:2:{i:0;s:25:\"field_ui_widget_type_form\";i:1;i:5;}','',117,7,1,'admin/structure/taxonomy/%/fields/%','admin/structure/taxonomy/%/fields/%','Widget type','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/taxonomy/%/list','a:1:{i:3;s:37:\"taxonomy_vocabulary_machine_name_load\";}','','user_access','a:1:{i:0;s:19:\"administer taxonomy\";}','drupal_get_form','a:2:{i:0;s:23:\"taxonomy_overview_terms\";i:1;i:3;}','',29,5,1,'admin/structure/taxonomy/%','admin/structure/taxonomy/%','List','t','','','a:0:{}',140,'','',-20,'modules/taxonomy/taxonomy.admin.inc'),('admin/structure/taxonomy/add','','','user_access','a:1:{i:0;s:19:\"administer taxonomy\";}','drupal_get_form','a:1:{i:0;s:24:\"taxonomy_form_vocabulary\";}','',15,4,1,'admin/structure/taxonomy','admin/structure/taxonomy','Add vocabulary','t','','','a:0:{}',388,'','',0,'modules/taxonomy/taxonomy.admin.inc'),('admin/structure/taxonomy/list','','','user_access','a:1:{i:0;s:19:\"administer taxonomy\";}','drupal_get_form','a:1:{i:0;s:30:\"taxonomy_overview_vocabularies\";}','',15,4,1,'admin/structure/taxonomy','admin/structure/taxonomy','List','t','','','a:0:{}',140,'','',-10,'modules/taxonomy/taxonomy.admin.inc'),('admin/structure/types','','','user_access','a:1:{i:0;s:24:\"administer content types\";}','node_overview_types','a:0:{}','',7,3,0,'','admin/structure/types','Content types','t','','','a:0:{}',6,'Manage content types, including default status, front page promotion, comment settings, etc.','',0,'modules/node/content_types.inc'),('admin/structure/types/add','','','user_access','a:1:{i:0;s:24:\"administer content types\";}','drupal_get_form','a:1:{i:0;s:14:\"node_type_form\";}','',15,4,1,'admin/structure/types','admin/structure/types','Add content type','t','','','a:0:{}',388,'','',0,'modules/node/content_types.inc'),('admin/structure/types/list','','','user_access','a:1:{i:0;s:24:\"administer content types\";}','node_overview_types','a:0:{}','',15,4,1,'admin/structure/types','admin/structure/types','List','t','','','a:0:{}',140,'','',-10,'modules/node/content_types.inc'),('admin/structure/types/manage/%','a:1:{i:4;s:14:\"node_type_load\";}','','user_access','a:1:{i:0;s:24:\"administer content types\";}','drupal_get_form','a:2:{i:0;s:14:\"node_type_form\";i:1;i:4;}','',30,5,0,'','admin/structure/types/manage/%','Edit content type','node_type_page_title','a:1:{i:0;i:4;}','','a:0:{}',6,'','',0,'modules/node/content_types.inc'),('admin/structure/types/manage/%/comment/display','a:1:{i:4;s:22:\"comment_node_type_load\";}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:7:\"comment\";i:2;i:4;i:3;s:7:\"default\";}','',123,7,1,'admin/structure/types/manage/%','admin/structure/types/manage/%','Comment display','t','','','a:0:{}',132,'','',4,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/comment/display/default','a:1:{i:4;s:22:\"comment_node_type_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:7:\"default\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:7:\"comment\";i:2;i:4;i:3;s:7:\"default\";}','',247,8,1,'admin/structure/types/manage/%/comment/display','admin/structure/types/manage/%','Default','t','','','a:0:{}',140,'','',-10,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/comment/display/full','a:1:{i:4;s:22:\"comment_node_type_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:4:\"full\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:7:\"comment\";i:2;i:4;i:3;s:4:\"full\";}','',247,8,1,'admin/structure/types/manage/%/comment/display','admin/structure/types/manage/%','Full comment','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/comment/fields','a:1:{i:4;s:22:\"comment_node_type_load\";}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:3:{i:0;s:28:\"field_ui_field_overview_form\";i:1;s:7:\"comment\";i:2;i:4;}','',123,7,1,'admin/structure/types/manage/%','admin/structure/types/manage/%','Comment fields','t','','','a:0:{}',132,'','',3,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/comment/fields/%','a:2:{i:4;a:1:{s:22:\"comment_node_type_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:7;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:24:\"field_ui_field_edit_form\";i:1;i:7;}','',246,8,0,'','admin/structure/types/manage/%/comment/fields/%','','field_ui_menu_title','a:1:{i:0;i:7;}','','a:0:{}',6,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/comment/fields/%/delete','a:2:{i:4;a:1:{s:22:\"comment_node_type_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:7;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:26:\"field_ui_field_delete_form\";i:1;i:7;}','',493,9,1,'admin/structure/types/manage/%/comment/fields/%','admin/structure/types/manage/%/comment/fields/%','Delete','t','','','a:0:{}',132,'','',10,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/comment/fields/%/edit','a:2:{i:4;a:1:{s:22:\"comment_node_type_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:7;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:24:\"field_ui_field_edit_form\";i:1;i:7;}','',493,9,1,'admin/structure/types/manage/%/comment/fields/%','admin/structure/types/manage/%/comment/fields/%','Edit','t','','','a:0:{}',140,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/comment/fields/%/field-settings','a:2:{i:4;a:1:{s:22:\"comment_node_type_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:7;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:28:\"field_ui_field_settings_form\";i:1;i:7;}','',493,9,1,'admin/structure/types/manage/%/comment/fields/%','admin/structure/types/manage/%/comment/fields/%','Field settings','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/comment/fields/%/widget-type','a:2:{i:4;a:1:{s:22:\"comment_node_type_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:7;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:7:\"comment\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:25:\"field_ui_widget_type_form\";i:1;i:7;}','',493,9,1,'admin/structure/types/manage/%/comment/fields/%','admin/structure/types/manage/%/comment/fields/%','Widget type','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/delete','a:1:{i:4;s:14:\"node_type_load\";}','','user_access','a:1:{i:0;s:24:\"administer content types\";}','drupal_get_form','a:2:{i:0;s:24:\"node_type_delete_confirm\";i:1;i:4;}','',61,6,0,'','admin/structure/types/manage/%/delete','Delete','t','','','a:0:{}',6,'','',0,'modules/node/content_types.inc'),('admin/structure/types/manage/%/display','a:1:{i:4;s:14:\"node_type_load\";}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"node\";i:2;i:4;i:3;s:7:\"default\";}','',61,6,1,'admin/structure/types/manage/%','admin/structure/types/manage/%','Manage display','t','','','a:0:{}',132,'','',2,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/display/default','a:1:{i:4;s:14:\"node_type_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:4:\"node\";i:1;i:4;i:2;s:7:\"default\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"node\";i:2;i:4;i:3;s:7:\"default\";}','',123,7,1,'admin/structure/types/manage/%/display','admin/structure/types/manage/%','Default','t','','','a:0:{}',140,'','',-10,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/display/full','a:1:{i:4;s:14:\"node_type_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:4:\"node\";i:1;i:4;i:2;s:4:\"full\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"node\";i:2;i:4;i:3;s:4:\"full\";}','',123,7,1,'admin/structure/types/manage/%/display','admin/structure/types/manage/%','Full content','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/display/rss','a:1:{i:4;s:14:\"node_type_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:4:\"node\";i:1;i:4;i:2;s:3:\"rss\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"node\";i:2;i:4;i:3;s:3:\"rss\";}','',123,7,1,'admin/structure/types/manage/%/display','admin/structure/types/manage/%','RSS','t','','','a:0:{}',132,'','',2,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/display/search_index','a:1:{i:4;s:14:\"node_type_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:4:\"node\";i:1;i:4;i:2;s:12:\"search_index\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"node\";i:2;i:4;i:3;s:12:\"search_index\";}','',123,7,1,'admin/structure/types/manage/%/display','admin/structure/types/manage/%','Search index','t','','','a:0:{}',132,'','',3,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/display/search_result','a:1:{i:4;s:14:\"node_type_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:4:\"node\";i:1;i:4;i:2;s:13:\"search_result\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"node\";i:2;i:4;i:3;s:13:\"search_result\";}','',123,7,1,'admin/structure/types/manage/%/display','admin/structure/types/manage/%','Search result highlighting input','t','','','a:0:{}',132,'','',4,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/display/teaser','a:1:{i:4;s:14:\"node_type_load\";}','','_field_ui_view_mode_menu_access','a:6:{i:0;s:4:\"node\";i:1;i:4;i:2;s:6:\"teaser\";i:3;s:21:\"field_ui_admin_access\";i:4;s:11:\"user_access\";i:5;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:4:{i:0;s:30:\"field_ui_display_overview_form\";i:1;s:4:\"node\";i:2;i:4;i:3;s:6:\"teaser\";}','',123,7,1,'admin/structure/types/manage/%/display','admin/structure/types/manage/%','Teaser','t','','','a:0:{}',132,'','',1,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/edit','a:1:{i:4;s:14:\"node_type_load\";}','','user_access','a:1:{i:0;s:24:\"administer content types\";}','drupal_get_form','a:2:{i:0;s:14:\"node_type_form\";i:1;i:4;}','',61,6,1,'admin/structure/types/manage/%','admin/structure/types/manage/%','Edit','t','','','a:0:{}',140,'','',0,'modules/node/content_types.inc'),('admin/structure/types/manage/%/fields','a:1:{i:4;s:14:\"node_type_load\";}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:3:{i:0;s:28:\"field_ui_field_overview_form\";i:1;s:4:\"node\";i:2;i:4;}','',61,6,1,'admin/structure/types/manage/%','admin/structure/types/manage/%','Manage fields','t','','','a:0:{}',132,'','',1,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/fields/%','a:2:{i:4;a:1:{s:14:\"node_type_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:6;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:24:\"field_ui_field_edit_form\";i:1;i:6;}','',122,7,0,'','admin/structure/types/manage/%/fields/%','','field_ui_menu_title','a:1:{i:0;i:6;}','','a:0:{}',6,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/fields/%/delete','a:2:{i:4;a:1:{s:14:\"node_type_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:6;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:26:\"field_ui_field_delete_form\";i:1;i:6;}','',245,8,1,'admin/structure/types/manage/%/fields/%','admin/structure/types/manage/%/fields/%','Delete','t','','','a:0:{}',132,'','',10,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/fields/%/edit','a:2:{i:4;a:1:{s:14:\"node_type_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:6;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:24:\"field_ui_field_edit_form\";i:1;i:6;}','',245,8,1,'admin/structure/types/manage/%/fields/%','admin/structure/types/manage/%/fields/%','Edit','t','','','a:0:{}',140,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/fields/%/field-settings','a:2:{i:4;a:1:{s:14:\"node_type_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:6;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:28:\"field_ui_field_settings_form\";i:1;i:6;}','',245,8,1,'admin/structure/types/manage/%/fields/%','admin/structure/types/manage/%/fields/%','Field settings','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/structure/types/manage/%/fields/%/widget-type','a:2:{i:4;a:1:{s:14:\"node_type_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}i:6;a:1:{s:18:\"field_ui_menu_load\";a:4:{i:0;s:4:\"node\";i:1;i:4;i:2;s:1:\"4\";i:3;s:4:\"%map\";}}}','','field_ui_admin_access','a:2:{i:0;s:11:\"user_access\";i:1;a:1:{i:0;s:24:\"administer content types\";}}','drupal_get_form','a:2:{i:0;s:25:\"field_ui_widget_type_form\";i:1;i:6;}','',245,8,1,'admin/structure/types/manage/%/fields/%','admin/structure/types/manage/%/fields/%','Widget type','t','','','a:0:{}',132,'','',0,'modules/field_ui/field_ui.admin.inc'),('admin/tasks','','','user_access','a:1:{i:0;s:27:\"access administration pages\";}','system_admin_menu_block_page','a:0:{}','',3,2,1,'admin','admin','Tasks','t','','','a:0:{}',140,'','',-20,'modules/system/system.admin.inc'),('admin/update/ready','','','update_manager_access','a:0:{}','drupal_get_form','a:1:{i:0;s:32:\"update_manager_update_ready_form\";}','',7,3,0,'','admin/update/ready','Ready to update','t','','','a:0:{}',0,'','',0,'modules/update/update.manager.inc'),('batch','','','1','a:0:{}','system_batch_page','a:0:{}','',1,1,0,'','batch','','t','','_system_batch_theme','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('blog','','','user_access','a:1:{i:0;s:14:\"access content\";}','blog_page_last','a:0:{}','',1,1,0,'','blog','Blogs','t','','','a:0:{}',20,'','',0,'modules/blog/blog.pages.inc'),('blog/%','a:1:{i:1;s:22:\"user_uid_optional_load\";}','a:1:{i:1;s:24:\"user_uid_optional_to_arg\";}','blog_page_user_access','a:1:{i:0;i:1;}','blog_page_user','a:1:{i:0;i:1;}','',2,2,0,'','blog/%','My blog','t','','','a:0:{}',6,'','',0,'modules/blog/blog.pages.inc'),('blog/%/feed','a:1:{i:1;s:9:\"user_load\";}','','blog_page_user_access','a:1:{i:0;i:1;}','blog_feed_user','a:1:{i:0;i:1;}','',5,3,0,'','blog/%/feed','Blogs','t','','','a:0:{}',0,'','',0,'modules/blog/blog.pages.inc'),('blog/feed','','','user_access','a:1:{i:0;s:14:\"access content\";}','blog_feed_last','a:0:{}','',3,2,0,'','blog/feed','Blogs','t','','','a:0:{}',0,'','',0,'modules/blog/blog.pages.inc'),('comment/%','a:1:{i:1;N;}','','user_access','a:1:{i:0;s:15:\"access comments\";}','comment_permalink','a:1:{i:0;i:1;}','',2,2,0,'','comment/%','Comment permalink','t','','','a:0:{}',6,'','',0,''),('comment/%/approve','a:1:{i:1;N;}','','user_access','a:1:{i:0;s:19:\"administer comments\";}','comment_approve','a:1:{i:0;i:1;}','',5,3,0,'','comment/%/approve','Approve','t','','','a:0:{}',6,'','',1,'modules/comment/comment.pages.inc'),('comment/%/delete','a:1:{i:1;N;}','','user_access','a:1:{i:0;s:19:\"administer comments\";}','comment_confirm_delete_page','a:1:{i:0;i:1;}','',5,3,1,'comment/%','comment/%','Delete','t','','','a:0:{}',132,'','',2,'modules/comment/comment.admin.inc'),('comment/%/edit','a:1:{i:1;s:12:\"comment_load\";}','','comment_access','a:2:{i:0;s:4:\"edit\";i:1;i:1;}','comment_edit_page','a:1:{i:0;i:1;}','',5,3,1,'comment/%','comment/%','Edit','t','','','a:0:{}',132,'','',0,''),('comment/%/view','a:1:{i:1;N;}','','user_access','a:1:{i:0;s:15:\"access comments\";}','comment_permalink','a:1:{i:0;i:1;}','',5,3,1,'comment/%','comment/%','View comment','t','','','a:0:{}',140,'','',-10,''),('comment/reply/%','a:1:{i:2;s:9:\"node_load\";}','','node_access','a:2:{i:0;s:4:\"view\";i:1;i:2;}','comment_reply','a:1:{i:0;i:2;}','',6,3,0,'','comment/reply/%','Add new comment','t','','','a:0:{}',6,'','',0,'modules/comment/comment.pages.inc'),('contact','','','user_access','a:1:{i:0;s:29:\"access site-wide contact form\";}','drupal_get_form','a:1:{i:0;s:17:\"contact_site_form\";}','',1,1,0,'','contact','Contact','t','','','a:0:{}',20,'','',0,'modules/contact/contact.pages.inc'),('file/ajax','','','user_access','a:1:{i:0;s:14:\"access content\";}','file_ajax_upload','a:0:{}','ajax_deliver',3,2,0,'','file/ajax','','t','','ajax_base_page_theme','a:0:{}',0,'','',0,''),('file/progress','','','user_access','a:1:{i:0;s:14:\"access content\";}','file_ajax_progress','a:0:{}','',3,2,0,'','file/progress','','t','','ajax_base_page_theme','a:0:{}',0,'','',0,''),('filter/tips','','','1','a:0:{}','filter_tips_long','a:0:{}','',3,2,0,'','filter/tips','Compose tips','t','','','a:0:{}',20,'','',0,'modules/filter/filter.pages.inc'),('filter/tips/%','a:1:{i:2;s:18:\"filter_format_load\";}','','filter_access','a:1:{i:0;i:2;}','filter_tips_long','a:1:{i:0;i:2;}','',6,3,0,'','filter/tips/%','Compose tips','t','','','a:0:{}',6,'','',0,'modules/filter/filter.pages.inc'),('node','','','user_access','a:1:{i:0;s:14:\"access content\";}','node_page_default','a:0:{}','',1,1,0,'','node','','t','','','a:0:{}',0,'','',0,''),('node/%','a:1:{i:1;s:9:\"node_load\";}','','node_access','a:2:{i:0;s:4:\"view\";i:1;i:1;}','node_page_view','a:1:{i:0;i:1;}','',2,2,0,'','node/%','','node_page_title','a:1:{i:0;i:1;}','','a:0:{}',6,'','',0,''),('node/%/delete','a:1:{i:1;s:9:\"node_load\";}','','node_access','a:2:{i:0;s:6:\"delete\";i:1;i:1;}','drupal_get_form','a:2:{i:0;s:19:\"node_delete_confirm\";i:1;i:1;}','',5,3,2,'node/%','node/%','Delete','t','','','a:0:{}',132,'','',1,'modules/node/node.pages.inc'),('node/%/edit','a:1:{i:1;s:9:\"node_load\";}','','node_access','a:2:{i:0;s:6:\"update\";i:1;i:1;}','node_page_edit','a:1:{i:0;i:1;}','',5,3,3,'node/%','node/%','Edit','t','','','a:0:{}',132,'','',0,'modules/node/node.pages.inc'),('node/%/revisions','a:1:{i:1;s:9:\"node_load\";}','','_node_revision_access','a:1:{i:0;i:1;}','node_revision_overview','a:1:{i:0;i:1;}','',5,3,1,'node/%','node/%','Revisions','t','','','a:0:{}',132,'','',2,'modules/node/node.pages.inc'),('node/%/revisions/%/delete','a:2:{i:1;a:1:{s:9:\"node_load\";a:1:{i:0;i:3;}}i:3;N;}','','_node_revision_access','a:2:{i:0;i:1;i:1;s:6:\"delete\";}','drupal_get_form','a:2:{i:0;s:28:\"node_revision_delete_confirm\";i:1;i:1;}','',21,5,0,'','node/%/revisions/%/delete','Delete earlier revision','t','','','a:0:{}',6,'','',0,'modules/node/node.pages.inc'),('node/%/revisions/%/revert','a:2:{i:1;a:1:{s:9:\"node_load\";a:1:{i:0;i:3;}}i:3;N;}','','_node_revision_access','a:2:{i:0;i:1;i:1;s:6:\"update\";}','drupal_get_form','a:2:{i:0;s:28:\"node_revision_revert_confirm\";i:1;i:1;}','',21,5,0,'','node/%/revisions/%/revert','Revert to earlier revision','t','','','a:0:{}',6,'','',0,'modules/node/node.pages.inc'),('node/%/revisions/%/view','a:2:{i:1;a:1:{s:9:\"node_load\";a:1:{i:0;i:3;}}i:3;N;}','','_node_revision_access','a:1:{i:0;i:1;}','node_show','a:2:{i:0;i:1;i:1;b:1;}','',21,5,0,'','node/%/revisions/%/view','Revisions','t','','','a:0:{}',6,'','',0,''),('node/%/view','a:1:{i:1;s:9:\"node_load\";}','','node_access','a:2:{i:0;s:4:\"view\";i:1;i:1;}','node_page_view','a:1:{i:0;i:1;}','',5,3,1,'node/%','node/%','View','t','','','a:0:{}',140,'','',-10,''),('node/add','','','_node_add_access','a:0:{}','node_add_page','a:0:{}','',3,2,0,'','node/add','Add content','t','','','a:0:{}',6,'','',0,'modules/node/node.pages.inc'),('node/add/article','','','node_access','a:2:{i:0;s:6:\"create\";i:1;s:7:\"article\";}','node_add','a:1:{i:0;s:7:\"article\";}','',7,3,0,'','node/add/article','Article','check_plain','','','a:0:{}',6,'Use articles for time-sensitive content like news, press releases or blog posts.','',0,'modules/node/node.pages.inc'),('node/add/blog','','','node_access','a:2:{i:0;s:6:\"create\";i:1;s:4:\"blog\";}','node_add','a:1:{i:0;s:4:\"blog\";}','',7,3,0,'','node/add/blog','Blog entry','check_plain','','','a:0:{}',6,'Use for multi-user blogs. Every user gets a personal blog.','',0,'modules/node/node.pages.inc'),('node/add/page','','','node_access','a:2:{i:0;s:6:\"create\";i:1;s:4:\"page\";}','node_add','a:1:{i:0;s:4:\"page\";}','',7,3,0,'','node/add/page','Basic page','check_plain','','','a:0:{}',6,'Use basic pages for your static content, such as an \'About us\' page.','',0,'modules/node/node.pages.inc'),('overlay-ajax/%','a:1:{i:1;N;}','','user_access','a:1:{i:0;s:14:\"access overlay\";}','overlay_ajax_render_region','a:1:{i:0;i:1;}','',2,2,0,'','overlay-ajax/%','','t','','','a:0:{}',0,'','',0,''),('overlay/dismiss-message','','','user_access','a:1:{i:0;s:14:\"access overlay\";}','overlay_user_dismiss_message','a:0:{}','',3,2,0,'','overlay/dismiss-message','','t','','','a:0:{}',0,'','',0,''),('rss.xml','','','user_access','a:1:{i:0;s:14:\"access content\";}','node_feed','a:2:{i:0;b:0;i:1;a:0:{}}','',1,1,0,'','rss.xml','RSS feed','t','','','a:0:{}',0,'','',0,''),('search','','','search_is_active','a:0:{}','search_view','a:0:{}','',1,1,0,'','search','Search','t','','','a:0:{}',20,'','',0,'modules/search/search.pages.inc'),('search/node','','','_search_menu_access','a:1:{i:0;s:4:\"node\";}','search_view','a:2:{i:0;s:4:\"node\";i:1;s:0:\"\";}','',3,2,1,'search','search','Content','t','','','a:0:{}',132,'','',-10,'modules/search/search.pages.inc'),('search/node/%','a:1:{i:2;a:1:{s:14:\"menu_tail_load\";a:2:{i:0;s:4:\"%map\";i:1;s:6:\"%index\";}}}','a:1:{i:2;s:16:\"menu_tail_to_arg\";}','_search_menu_access','a:1:{i:0;s:4:\"node\";}','search_view','a:2:{i:0;s:4:\"node\";i:1;i:2;}','',6,3,1,'search/node','search/node/%','Content','t','','','a:0:{}',132,'','',0,'modules/search/search.pages.inc'),('search/user','','','_search_menu_access','a:1:{i:0;s:4:\"user\";}','search_view','a:2:{i:0;s:4:\"user\";i:1;s:0:\"\";}','',3,2,1,'search','search','Users','t','','','a:0:{}',132,'','',0,'modules/search/search.pages.inc'),('search/user/%','a:1:{i:2;a:1:{s:14:\"menu_tail_load\";a:2:{i:0;s:4:\"%map\";i:1;s:6:\"%index\";}}}','a:1:{i:2;s:16:\"menu_tail_to_arg\";}','_search_menu_access','a:1:{i:0;s:4:\"user\";}','search_view','a:2:{i:0;s:4:\"user\";i:1;i:2;}','',6,3,1,'search/node','search/node/%','Users','t','','','a:0:{}',132,'','',0,'modules/search/search.pages.inc'),('sites/default/files/styles/%','a:1:{i:4;s:16:\"image_style_load\";}','','1','a:0:{}','image_style_deliver','a:1:{i:0;i:4;}','',30,5,0,'','sites/default/files/styles/%','Generate image style','t','','','a:0:{}',0,'','',0,''),('system/ajax','','','1','a:0:{}','ajax_form_callback','a:0:{}','ajax_deliver',3,2,0,'','system/ajax','AHAH callback','t','','ajax_base_page_theme','a:0:{}',0,'','',0,'includes/form.inc'),('system/files','','','1','a:0:{}','file_download','a:1:{i:0;s:7:\"private\";}','',3,2,0,'','system/files','File download','t','','','a:0:{}',0,'','',0,''),('system/files/styles/%','a:1:{i:3;s:16:\"image_style_load\";}','','1','a:0:{}','image_style_deliver','a:1:{i:0;i:3;}','',14,4,0,'','system/files/styles/%','Generate image style','t','','','a:0:{}',0,'','',0,''),('system/temporary','','','1','a:0:{}','file_download','a:1:{i:0;s:9:\"temporary\";}','',3,2,0,'','system/temporary','Temporary files','t','','','a:0:{}',0,'','',0,''),('system/timezone','','','1','a:0:{}','system_timezone','a:0:{}','',3,2,0,'','system/timezone','Time zone','t','','','a:0:{}',0,'','',0,'modules/system/system.admin.inc'),('taxonomy/autocomplete','','','user_access','a:1:{i:0;s:14:\"access content\";}','taxonomy_autocomplete','a:0:{}','',3,2,0,'','taxonomy/autocomplete','Autocomplete taxonomy','t','','','a:0:{}',0,'','',0,'modules/taxonomy/taxonomy.pages.inc'),('taxonomy/term/%','a:1:{i:2;s:18:\"taxonomy_term_load\";}','','user_access','a:1:{i:0;s:14:\"access content\";}','taxonomy_term_page','a:1:{i:0;i:2;}','',6,3,0,'','taxonomy/term/%','Taxonomy term','taxonomy_term_title','a:1:{i:0;i:2;}','','a:0:{}',6,'','',0,'modules/taxonomy/taxonomy.pages.inc'),('taxonomy/term/%/edit','a:1:{i:2;s:18:\"taxonomy_term_load\";}','','taxonomy_term_edit_access','a:1:{i:0;i:2;}','drupal_get_form','a:3:{i:0;s:18:\"taxonomy_form_term\";i:1;i:2;i:2;N;}','',13,4,1,'taxonomy/term/%','taxonomy/term/%','Edit','t','','','a:0:{}',132,'','',10,'modules/taxonomy/taxonomy.admin.inc'),('taxonomy/term/%/feed','a:1:{i:2;s:18:\"taxonomy_term_load\";}','','user_access','a:1:{i:0;s:14:\"access content\";}','taxonomy_term_feed','a:1:{i:0;i:2;}','',13,4,0,'','taxonomy/term/%/feed','Taxonomy term','taxonomy_term_title','a:1:{i:0;i:2;}','','a:0:{}',0,'','',0,'modules/taxonomy/taxonomy.pages.inc'),('taxonomy/term/%/view','a:1:{i:2;s:18:\"taxonomy_term_load\";}','','user_access','a:1:{i:0;s:14:\"access content\";}','taxonomy_term_page','a:1:{i:0;i:2;}','',13,4,1,'taxonomy/term/%','taxonomy/term/%','View','t','','','a:0:{}',140,'','',0,'modules/taxonomy/taxonomy.pages.inc'),('toolbar/toggle','','','user_access','a:1:{i:0;s:14:\"access toolbar\";}','toolbar_toggle_page','a:0:{}','',3,2,0,'','toolbar/toggle','Toggle drawer visibility','t','','','a:0:{}',0,'','',0,''),('user','','','1','a:0:{}','user_page','a:0:{}','',1,1,0,'','user','User account','user_menu_title','','','a:0:{}',6,'','',-10,'modules/user/user.pages.inc'),('user/%','a:1:{i:1;s:9:\"user_load\";}','','user_view_access','a:1:{i:0;i:1;}','user_view_page','a:1:{i:0;i:1;}','',2,2,0,'','user/%','My account','user_page_title','a:1:{i:0;i:1;}','','a:0:{}',6,'','',0,''),('user/%/cancel','a:1:{i:1;s:9:\"user_load\";}','','user_cancel_access','a:1:{i:0;i:1;}','drupal_get_form','a:2:{i:0;s:24:\"user_cancel_confirm_form\";i:1;i:1;}','',5,3,0,'','user/%/cancel','Cancel account','t','','','a:0:{}',6,'','',0,'modules/user/user.pages.inc'),('user/%/cancel/confirm/%/%','a:3:{i:1;s:9:\"user_load\";i:4;N;i:5;N;}','','user_cancel_access','a:1:{i:0;i:1;}','user_cancel_confirm','a:3:{i:0;i:1;i:1;i:4;i:2;i:5;}','',44,6,0,'','user/%/cancel/confirm/%/%','Confirm account cancellation','t','','','a:0:{}',6,'','',0,'modules/user/user.pages.inc'),('user/%/contact','a:1:{i:1;s:9:\"user_load\";}','','_contact_personal_tab_access','a:1:{i:0;i:1;}','drupal_get_form','a:2:{i:0;s:21:\"contact_personal_form\";i:1;i:1;}','',5,3,1,'user/%','user/%','Contact','t','','','a:0:{}',132,'','',2,'modules/contact/contact.pages.inc'),('user/%/edit','a:1:{i:1;s:9:\"user_load\";}','','user_edit_access','a:1:{i:0;i:1;}','drupal_get_form','a:2:{i:0;s:17:\"user_profile_form\";i:1;i:1;}','',5,3,1,'user/%','user/%','Edit','t','','','a:0:{}',132,'','',0,'modules/user/user.pages.inc'),('user/%/edit/account','a:1:{i:1;a:1:{s:18:\"user_category_load\";a:2:{i:0;s:4:\"%map\";i:1;s:6:\"%index\";}}}','','user_edit_access','a:1:{i:0;i:1;}','drupal_get_form','a:2:{i:0;s:17:\"user_profile_form\";i:1;i:1;}','',11,4,1,'user/%/edit','user/%','Account','t','','','a:0:{}',140,'','',0,'modules/user/user.pages.inc'),('user/%/shortcuts','a:1:{i:1;s:9:\"user_load\";}','','shortcut_set_switch_access','a:1:{i:0;i:1;}','drupal_get_form','a:2:{i:0;s:19:\"shortcut_set_switch\";i:1;i:1;}','',5,3,1,'user/%','user/%','Shortcuts','t','','','a:0:{}',132,'','',0,'modules/shortcut/shortcut.admin.inc'),('user/%/view','a:1:{i:1;s:9:\"user_load\";}','','user_view_access','a:1:{i:0;i:1;}','user_view_page','a:1:{i:0;i:1;}','',5,3,1,'user/%','user/%','View','t','','','a:0:{}',140,'','',-10,''),('user/autocomplete','','','user_access','a:1:{i:0;s:20:\"access user profiles\";}','user_autocomplete','a:0:{}','',3,2,0,'','user/autocomplete','User autocomplete','t','','','a:0:{}',0,'','',0,'modules/user/user.pages.inc'),('user/login','','','user_is_anonymous','a:0:{}','user_page','a:0:{}','',3,2,1,'user','user','Log in','t','','','a:0:{}',140,'','',0,'modules/user/user.pages.inc'),('user/logout','','','user_is_logged_in','a:0:{}','user_logout','a:0:{}','',3,2,0,'','user/logout','Log out','t','','','a:0:{}',6,'','',10,'modules/user/user.pages.inc'),('user/password','','','1','a:0:{}','drupal_get_form','a:1:{i:0;s:9:\"user_pass\";}','',3,2,1,'user','user','Request new password','t','','','a:0:{}',132,'','',0,'modules/user/user.pages.inc'),('user/register','','','user_register_access','a:0:{}','drupal_get_form','a:1:{i:0;s:18:\"user_register_form\";}','',3,2,1,'user','user','Create new account','t','','','a:0:{}',132,'','',0,''),('user/reset/%/%/%','a:3:{i:2;N;i:3;N;i:4;N;}','','1','a:0:{}','drupal_get_form','a:4:{i:0;s:15:\"user_pass_reset\";i:1;i:2;i:2;i:3;i:3;i:4;}','',24,5,0,'','user/reset/%/%/%','Reset password','t','','','a:0:{}',0,'','',0,'modules/user/user.pages.inc'); +/*!40000 ALTER TABLE `menu_router` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `node` -- --- Άδειασμα δεδομένων του πίνακα `menu_router` --- - -INSERT INTO `menu_router` (`path`, `load_functions`, `to_arg_functions`, `access_callback`, `access_arguments`, `page_callback`, `page_arguments`, `delivery_callback`, `fit`, `number_parts`, `context`, `tab_parent`, `tab_root`, `title`, `title_callback`, `title_arguments`, `theme_callback`, `theme_arguments`, `type`, `description`, `position`, `weight`, `include_file`) VALUES -('admin', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 1, 1, 0, '', 'admin', 'Administration', 't', '', '', 'a:0:{}', 6, '', '', 9, 'modules/system/system.admin.inc'), -('admin/appearance', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e6973746572207468656d6573223b7d, 'system_themes_page', 0x613a303a7b7d, '', 3, 2, 0, '', 'admin/appearance', 'Appearance', 't', '', '', 'a:0:{}', 6, 'Select and configure your themes.', 'left', -6, 'modules/system/system.admin.inc'), -('admin/appearance/default', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e6973746572207468656d6573223b7d, 'system_theme_default', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/appearance/default', 'Set default theme', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('admin/appearance/disable', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e6973746572207468656d6573223b7d, 'system_theme_disable', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/appearance/disable', 'Disable theme', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('admin/appearance/enable', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e6973746572207468656d6573223b7d, 'system_theme_enable', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/appearance/enable', 'Enable theme', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('admin/appearance/install', '', '', 'update_manager_access', 0x613a303a7b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32373a227570646174655f6d616e616765725f696e7374616c6c5f666f726d223b693a313b733a353a227468656d65223b7d, '', 7, 3, 1, 'admin/appearance', 'admin/appearance', 'Install new theme', 't', '', '', 'a:0:{}', 388, '', '', 25, 'modules/update/update.manager.inc'), -('admin/appearance/list', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e6973746572207468656d6573223b7d, 'system_themes_page', 0x613a303a7b7d, '', 7, 3, 1, 'admin/appearance', 'admin/appearance', 'List', 't', '', '', 'a:0:{}', 140, 'Select and configure your theme', '', -1, 'modules/system/system.admin.inc'), -('admin/appearance/settings', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e6973746572207468656d6573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32313a2273797374656d5f7468656d655f73657474696e6773223b7d, '', 7, 3, 1, 'admin/appearance', 'admin/appearance', 'Settings', 't', '', '', 'a:0:{}', 132, 'Configure default and theme specific settings.', '', 20, 'modules/system/system.admin.inc'), -('admin/appearance/settings/bartik', '', '', '_system_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32353a227468656d65732f62617274696b2f62617274696b2e696e666f223b733a343a226e616d65223b733a363a2262617274696b223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2231223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31383a7b733a343a226e616d65223b733a363a2242617274696b223b733a31313a226465736372697074696f6e223b733a34383a224120666c657869626c652c207265636f6c6f7261626c65207468656d652077697468206d616e7920726567696f6e732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a333a7b733a31343a226373732f6c61796f75742e637373223b733a32383a227468656d65732f62617274696b2f6373732f6c61796f75742e637373223b733a31333a226373732f7374796c652e637373223b733a32373a227468656d65732f62617274696b2f6373732f7374796c652e637373223b733a31343a226373732f636f6c6f72732e637373223b733a32383a227468656d65732f62617274696b2f6373732f636f6c6f72732e637373223b7d733a353a227072696e74223b613a313a7b733a31333a226373732f7072696e742e637373223b733a32373a227468656d65732f62617274696b2f6373732f7072696e742e637373223b7d7d733a373a22726567696f6e73223b613a32303a7b733a363a22686561646572223b733a363a22486561646572223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a383a226665617475726564223b733a383a224665617475726564223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a31333a22736964656261725f6669727374223b733a31333a2253696465626172206669727374223b733a31343a22736964656261725f7365636f6e64223b733a31343a2253696465626172207365636f6e64223b733a31343a2274726970747963685f6669727374223b733a31343a225472697074796368206669727374223b733a31353a2274726970747963685f6d6964646c65223b733a31353a225472697074796368206d6964646c65223b733a31333a2274726970747963685f6c617374223b733a31333a225472697074796368206c617374223b733a31383a22666f6f7465725f6669727374636f6c756d6e223b733a31393a22466f6f74657220666972737420636f6c756d6e223b733a31393a22666f6f7465725f7365636f6e64636f6c756d6e223b733a32303a22466f6f746572207365636f6e6420636f6c756d6e223b733a31383a22666f6f7465725f7468697264636f6c756d6e223b733a31393a22466f6f74657220746869726420636f6c756d6e223b733a31393a22666f6f7465725f666f75727468636f6c756d6e223b733a32303a22466f6f74657220666f7572746820636f6c756d6e223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a2273657474696e6773223b613a313a7b733a32303a2273686f72746375745f6d6f64756c655f6c696e6b223b733a313a2230223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32383a227468656d65732f62617274696b2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a333a7b733a31343a226373732f6c61796f75742e637373223b733a32383a227468656d65732f62617274696b2f6373732f6c61796f75742e637373223b733a31333a226373732f7374796c652e637373223b733a32373a227468656d65732f62617274696b2f6373732f7374796c652e637373223b733a31343a226373732f636f6c6f72732e637373223b733a32383a227468656d65732f62617274696b2f6373732f636f6c6f72732e637373223b7d733a353a227072696e74223b613a313a7b733a31333a226373732f7072696e742e637373223b733a32373a227468656d65732f62617274696b2f6373732f7072696e742e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'drupal_get_form', 0x613a323a7b693a303b733a32313a2273797374656d5f7468656d655f73657474696e6773223b693a313b733a363a2262617274696b223b7d, '', 15, 4, 1, 'admin/appearance/settings', 'admin/appearance', 'Bartik', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/system/system.admin.inc'), -('admin/appearance/settings/garland', '', '', '_system_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32373a227468656d65732f6761726c616e642f6761726c616e642e696e666f223b733a343a226e616d65223b733a373a226761726c616e64223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2230223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31383a7b733a343a226e616d65223b733a373a224761726c616e64223b733a31313a226465736372697074696f6e223b733a3131313a2241206d756c74692d636f6c756d6e207468656d652077686963682063616e20626520636f6e6669677572656420746f206d6f6469667920636f6c6f727320616e6420737769746368206265747765656e20666978656420616e6420666c756964207769647468206c61796f7574732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a313a7b733a393a227374796c652e637373223b733a32343a227468656d65732f6761726c616e642f7374796c652e637373223b7d733a353a227072696e74223b613a313a7b733a393a227072696e742e637373223b733a32343a227468656d65732f6761726c616e642f7072696e742e637373223b7d7d733a383a2273657474696e6773223b613a313a7b733a31333a226761726c616e645f7769647468223b733a353a22666c756964223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a373a22726567696f6e73223b613a31323a7b733a31333a22736964656261725f6669727374223b733a31323a224c6566742073696465626172223b733a31343a22736964656261725f7365636f6e64223b733a31333a2252696768742073696465626172223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a363a22686561646572223b733a363a22486561646572223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32393a227468656d65732f6761726c616e642f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a313a7b733a393a227374796c652e637373223b733a32343a227468656d65732f6761726c616e642f7374796c652e637373223b7d733a353a227072696e74223b613a313a7b733a393a227072696e742e637373223b733a32343a227468656d65732f6761726c616e642f7072696e742e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'drupal_get_form', 0x613a323a7b693a303b733a32313a2273797374656d5f7468656d655f73657474696e6773223b693a313b733a373a226761726c616e64223b7d, '', 15, 4, 1, 'admin/appearance/settings', 'admin/appearance', 'Garland', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/system/system.admin.inc'), -('admin/appearance/settings/global', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e6973746572207468656d6573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32313a2273797374656d5f7468656d655f73657474696e6773223b7d, '', 15, 4, 1, 'admin/appearance/settings', 'admin/appearance', 'Global settings', 't', '', '', 'a:0:{}', 140, '', '', -1, 'modules/system/system.admin.inc'), -('admin/appearance/settings/seven', '', '', '_system_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32333a227468656d65732f736576656e2f736576656e2e696e666f223b733a343a226e616d65223b733a353a22736576656e223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2231223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31383a7b733a343a226e616d65223b733a353a22536576656e223b733a31313a226465736372697074696f6e223b733a36353a22412073696d706c65206f6e652d636f6c756d6e2c207461626c656c6573732c20666c7569642077696474682061646d696e697374726174696f6e207468656d652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a313a7b733a363a2273637265656e223b613a323a7b733a393a2272657365742e637373223b733a32323a227468656d65732f736576656e2f72657365742e637373223b733a393a227374796c652e637373223b733a32323a227468656d65732f736576656e2f7374796c652e637373223b7d7d733a383a2273657474696e6773223b613a313a7b733a32303a2273686f72746375745f6d6f64756c655f6c696e6b223b733a313a2231223b7d733a373a22726567696f6e73223b613a383a7b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31333a22736964656261725f6669727374223b733a31333a2246697273742073696465626172223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a31343a22726567696f6e735f68696464656e223b613a333a7b693a303b733a31333a22736964656261725f6669727374223b693a313b733a383a22706167655f746f70223b693a323b733a31313a22706167655f626f74746f6d223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32373a227468656d65732f736576656e2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a313a7b733a363a2273637265656e223b613a323a7b733a393a2272657365742e637373223b733a32323a227468656d65732f736576656e2f72657365742e637373223b733a393a227374796c652e637373223b733a32323a227468656d65732f736576656e2f7374796c652e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'drupal_get_form', 0x613a323a7b693a303b733a32313a2273797374656d5f7468656d655f73657474696e6773223b693a313b733a353a22736576656e223b7d, '', 15, 4, 1, 'admin/appearance/settings', 'admin/appearance', 'Seven', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/system/system.admin.inc'), -('admin/appearance/settings/simplecorp', '', '', '_system_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a34333a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f73696d706c65636f72702e696e666f223b733a343a226e616d65223b733a31303a2273696d706c65636f7270223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2231223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31353a7b733a343a226e616d65223b733a31303a2253696d706c65436f7270223b733a31313a226465736372697074696f6e223b733a3335323a224120666c657869626c6520726573706f6e73697665207468656d652077697468206d616e7920726567696f6e7320737570706f72746564206279203c6120687265663d22687474703a2f2f7777772e6d6f72657468616e7468656d65732e636f6d2f22207461726765743d225f626c616e6b223e4d6f7265207468616e20286a75737429205468656d65733c2f613e2e20496620796f75206c696b652074686973207468656d652c20776520656e636f757261676520796f7520746f2074727920616c736f206f7572206f74686572203c6120687265663d22687474703a2f2f7777772e6d6f72657468616e7468656d65732e636f6d22207461726765743d225f626c616e6b223e5072656d69756d3c2f613e20616e64203c6120687265663d22687474703a2f2f64727570616c697a696e672e636f6d22207461726765743d225f626c616e6b223e467265653c2f613e2044727570616c207468656d65732e223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a343a7b733a333a22616c6c223b613a343a7b733a31363a226373732f6d61696e2d6373732e637373223b733a34343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6d61696e2d6373732e637373223b733a31373a226373732f6e6f726d616c697a652e637373223b733a34353a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6e6f726d616c697a652e637373223b733a32363a226373732f706c7567696e732f666c6578736c696465722e637373223b733a35343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f706c7567696e732f666c6578736c696465722e637373223b733a31333a226373732f6c6f63616c2e637373223b733a34313a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6c6f63616c2e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2037363870782920616e6420286d61782d77696474683a20393539707829223b613a313a7b733a31313a226373732f3736382e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3736382e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2034383070782920616e6420286d61782d77696474683a20373637707829223b613a313a7b733a31313a226373732f3438302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3438302e637373223b7d733a32363a22616c6c20616e6420286d61782d77696474683a20343739707829223b613a313a7b733a31313a226373732f3332302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3332302e637373223b7d7d733a373a22726567696f6e73223b613a32303a7b733a363a22686561646572223b733a363a22486561646572223b733a31303a226e617669676174696f6e223b733a31303a224e617669676174696f6e223b733a31313a22746f705f636f6e74656e74223b733a31313a22546f7020436f6e74656e74223b733a363a2262616e6e6572223b733a363a2242616e6e6572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a31333a22736964656261725f6669727374223b733a31333a2253696465626172204669727374223b733a31343a22736964656261725f7365636f6e64223b733a31343a2253696465626172205365636f6e64223b733a31343a22626f74746f6d5f636f6e74656e74223b733a31343a22426f74746f6d20436f6e74656e74223b733a31323a22666f6f7465725f6669727374223b733a31323a22466f6f746572204669727374223b733a31333a22666f6f7465725f7365636f6e64223b733a31333a22466f6f746572205365636f6e64223b733a31323a22666f6f7465725f7468697264223b733a31323a22466f6f746572205468697264223b733a31333a22666f6f7465725f666f75727468223b733a31333a22466f6f74657220466f75727468223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a2273657474696e6773223b613a33343a7b733a31383a2262726561646372756d625f646973706c6179223b733a313a2231223b733a32303a2262726561646372756d625f736570617261746f72223b733a313a222f223b733a31393a226d61696e5f6d656e755f637573746f6d5f6a73223b733a313a2231223b733a31373a226865616465725f746f6f6c7469705f6a73223b733a313a2231223b733a32303a22736f6369616c5f69636f6e735f646973706c6179223b733a313a2231223b733a31393a22686967686c6967687465645f646973706c6179223b733a313a2231223b733a31363a226361726f7573656c5f646973706c6179223b733a313a2231223b733a31313a226361726f7573656c5f6a73223b733a313a2231223b733a32303a226361726f7573656c5f6566666563745f74696d65223b733a333a22302e36223b733a31353a226361726f7573656c5f656666656374223b733a31313a22656173654f757443697263223b733a31373a22736c69646573686f775f646973706c6179223b733a313a2231223b733a31323a22736c69646573686f775f6a73223b733a313a2231223b733a31363a22736c69646573686f775f656666656374223b733a353a22736c696465223b733a32313a22736c69646573686f775f6566666563745f74696d65223b733a313a2235223b733a31363a22736c69646573686f775f72616e646f6d223b733a313a2230223b733a31383a22736c69646573686f775f636f6e74726f6c73223b733a313a2231223b733a31353a22736c69646573686f775f7061757365223b733a313a2231223b733a31353a22736c69646573686f775f746f756368223b733a313a2231223b733a31353a22726573706f6e736976655f6d657461223b733a313a2231223b733a31383a22726573706f6e736976655f726573706f6e64223b733a313a2230223b733a31323a22627574746f6e5f636f6c6f72223b733a31303a22737465656c5f626c7565223b733a31313a227468656d655f636f6c6f72223b733a373a2264656661756c74223b733a31343a22636f6c756d6e735f656e61626c65223b733a313a2230223b733a31323a226c697374735f656e61626c65223b733a313a2230223b733a31323a22626f7865735f656e61626c65223b733a313a2230223b733a31323a22717569636b73616e645f6a73223b733a313a2230223b733a31343a2270726574747970686f746f5f6a73223b733a313a2231223b733a31373a2270726574747970686f746f5f7468656d65223b733a31303a2270705f64656661756c74223b733a32343a2270726574747970686f746f5f736f6369616c5f746f6f6c73223b733a313a2231223b733a31373a226a7477656574616e7977686572655f6a73223b733a313a2230223b733a31373a226a7477656574616e7977686572655f6964223b733a31343a226d6f72657468616e7468656d6573223b733a32313a22726573706f6e736976655f6d656e755f7374617465223b733a313a2231223b733a32373a22726573706f6e736976655f6d656e755f7377697463687769647468223b733a333a22393630223b733a32393a22726573706f6e736976655f6d656e755f746f706f7074696f6e74657874223b733a31333a2253656c65637420612070616765223b7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a34323a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a343a7b733a333a22616c6c223b613a343a7b733a31363a226373732f6d61696e2d6373732e637373223b733a34343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6d61696e2d6373732e637373223b733a31373a226373732f6e6f726d616c697a652e637373223b733a34353a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6e6f726d616c697a652e637373223b733a32363a226373732f706c7567696e732f666c6578736c696465722e637373223b733a35343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f706c7567696e732f666c6578736c696465722e637373223b733a31333a226373732f6c6f63616c2e637373223b733a34313a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6c6f63616c2e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2037363870782920616e6420286d61782d77696474683a20393539707829223b613a313a7b733a31313a226373732f3736382e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3736382e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2034383070782920616e6420286d61782d77696474683a20373637707829223b613a313a7b733a31313a226373732f3438302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3438302e637373223b7d733a32363a22616c6c20616e6420286d61782d77696474683a20343739707829223b613a313a7b733a31313a226373732f3332302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3332302e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'drupal_get_form', 0x613a323a7b693a303b733a32313a2273797374656d5f7468656d655f73657474696e6773223b693a313b733a31303a2273696d706c65636f7270223b7d, '', 15, 4, 1, 'admin/appearance/settings', 'admin/appearance', 'SimpleCorp', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/system/system.admin.inc'), -('admin/appearance/settings/stark', '', '', '_system_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32333a227468656d65732f737461726b2f737461726b2e696e666f223b733a343a226e616d65223b733a353a22737461726b223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2230223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31373a7b733a343a226e616d65223b733a353a22537461726b223b733a31313a226465736372697074696f6e223b733a3230383a2254686973207468656d652064656d6f6e737472617465732044727570616c27732064656661756c742048544d4c206d61726b757020616e6420435353207374796c65732e20546f206c6561726e20686f7720746f206275696c6420796f7572206f776e207468656d6520616e64206f766572726964652044727570616c27732064656661756c7420636f64652c2073656520746865203c6120687265663d22687474703a2f2f64727570616c2e6f72672f7468656d652d6775696465223e5468656d696e672047756964653c2f613e2e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31303a226c61796f75742e637373223b733a32333a227468656d65732f737461726b2f6c61796f75742e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a373a22726567696f6e73223b613a31323a7b733a31333a22736964656261725f6669727374223b733a31323a224c6566742073696465626172223b733a31343a22736964656261725f7365636f6e64223b733a31333a2252696768742073696465626172223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a363a22686561646572223b733a363a22486561646572223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32373a227468656d65732f737461726b2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31303a226c61796f75742e637373223b733a32333a227468656d65732f737461726b2f6c61796f75742e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'drupal_get_form', 0x613a323a7b693a303b733a32313a2273797374656d5f7468656d655f73657474696e6773223b693a313b733a353a22737461726b223b7d, '', 15, 4, 1, 'admin/appearance/settings', 'admin/appearance', 'Stark', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/system/system.admin.inc'), -('admin/appearance/update', '', '', 'update_manager_access', 0x613a303a7b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32363a227570646174655f6d616e616765725f7570646174655f666f726d223b693a313b733a353a227468656d65223b7d, '', 7, 3, 1, 'admin/appearance', 'admin/appearance', 'Update', 't', '', '', 'a:0:{}', 132, '', '', 10, 'modules/update/update.manager.inc'), -('admin/compact', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_compact_page', 0x613a303a7b7d, '', 3, 2, 0, '', 'admin/compact', 'Compact mode', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('admin/config', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_config_page', 0x613a303a7b7d, '', 3, 2, 0, '', 'admin/config', 'Configuration', 't', '', '', 'a:0:{}', 6, 'Administer settings.', '', 0, 'modules/system/system.admin.inc'), -('admin/config/content', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/content', 'Content authoring', 't', '', '', 'a:0:{}', 6, 'Settings related to formatting and authoring content.', 'left', -15, 'modules/system/system.admin.inc'), -('admin/config/content/formats', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e69737465722066696c74657273223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32313a2266696c7465725f61646d696e5f6f76657276696577223b7d, '', 15, 4, 0, '', 'admin/config/content/formats', 'Text formats', 't', '', '', 'a:0:{}', 6, 'Configure how content input by users is filtered, including allowed HTML tags. Also allows enabling of module-provided filters.', '', 0, 'modules/filter/filter.admin.inc'), -('admin/config/content/formats/%', 0x613a313a7b693a343b733a31383a2266696c7465725f666f726d61745f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e69737465722066696c74657273223b7d, 'filter_admin_format_page', 0x613a313a7b693a303b693a343b7d, '', 30, 5, 0, '', 'admin/config/content/formats/%', '', 'filter_admin_format_title', 'a:1:{i:0;i:4;}', '', 'a:0:{}', 6, '', '', 0, 'modules/filter/filter.admin.inc'), -('admin/config/content/formats/%/disable', 0x613a313a7b693a343b733a31383a2266696c7465725f666f726d61745f6c6f6164223b7d, '', '_filter_disable_format_access', 0x613a313a7b693a303b693a343b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32303a2266696c7465725f61646d696e5f64697361626c65223b693a313b693a343b7d, '', 61, 6, 0, '', 'admin/config/content/formats/%/disable', 'Disable text format', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/filter/filter.admin.inc'), -('admin/config/content/formats/add', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e69737465722066696c74657273223b7d, 'filter_admin_format_page', 0x613a303a7b7d, '', 31, 5, 1, 'admin/config/content/formats', 'admin/config/content/formats', 'Add text format', 't', '', '', 'a:0:{}', 388, '', '', 1, 'modules/filter/filter.admin.inc'), -('admin/config/content/formats/list', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e69737465722066696c74657273223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32313a2266696c7465725f61646d696e5f6f76657276696577223b7d, '', 31, 5, 1, 'admin/config/content/formats', 'admin/config/content/formats', 'List', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/filter/filter.admin.inc'), -('admin/config/development', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/development', 'Development', 't', '', '', 'a:0:{}', 6, 'Development tools.', 'right', -10, 'modules/system/system.admin.inc'), -('admin/config/development/logging', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32333a2273797374656d5f6c6f6767696e675f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/development/logging', 'Logging and errors', 't', '', '', 'a:0:{}', 6, 'Settings for logging and alerts modules. Various modules can route Drupal''s system events to different destinations, such as syslog, database, email, etc.', '', -15, 'modules/system/system.admin.inc'), -('admin/config/development/maintenance', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32383a2273797374656d5f736974655f6d61696e74656e616e63655f6d6f6465223b7d, '', 15, 4, 0, '', 'admin/config/development/maintenance', 'Maintenance mode', 't', '', '', 'a:0:{}', 6, 'Take the site offline for maintenance or bring it back online.', '', -10, 'modules/system/system.admin.inc'), -('admin/config/development/performance', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32373a2273797374656d5f706572666f726d616e63655f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/development/performance', 'Performance', 't', '', '', 'a:0:{}', 6, 'Enable or disable page caching for anonymous users and set CSS and JS bandwidth optimization options.', '', -20, 'modules/system/system.admin.inc'), -('admin/config/media', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/media', 'Media', 't', '', '', 'a:0:{}', 6, 'Media tools.', 'left', -10, 'modules/system/system.admin.inc'), -('admin/config/media/file-system', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32373a2273797374656d5f66696c655f73797374656d5f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/media/file-system', 'File system', 't', '', '', 'a:0:{}', 6, 'Tell Drupal where to store uploaded files and how they are accessed.', '', -10, 'modules/system/system.admin.inc'), -('admin/config/media/image-styles', '', '', 'user_access', 0x613a313a7b693a303b733a32333a2261646d696e697374657220696d616765207374796c6573223b7d, 'image_style_list', 0x613a303a7b7d, '', 15, 4, 0, '', 'admin/config/media/image-styles', 'Image styles', 't', '', '', 'a:0:{}', 6, 'Configure styles that can be used for resizing or adjusting images on display.', '', 0, 'modules/image/image.admin.inc'), -('admin/config/media/image-styles/add', '', '', 'user_access', 0x613a313a7b693a303b733a32333a2261646d696e697374657220696d616765207374796c6573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32303a22696d6167655f7374796c655f6164645f666f726d223b7d, '', 31, 5, 1, 'admin/config/media/image-styles', 'admin/config/media/image-styles', 'Add style', 't', '', '', 'a:0:{}', 388, 'Add a new image style.', '', 2, 'modules/image/image.admin.inc'), -('admin/config/media/image-styles/delete/%', 0x613a313a7b693a353b613a313a7b733a31363a22696d6167655f7374796c655f6c6f6164223b613a323a7b693a303b4e3b693a313b733a313a2231223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32333a2261646d696e697374657220696d616765207374796c6573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32333a22696d6167655f7374796c655f64656c6574655f666f726d223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/config/media/image-styles/delete/%', 'Delete style', 't', '', '', 'a:0:{}', 6, 'Delete an image style.', '', 0, 'modules/image/image.admin.inc'), -('admin/config/media/image-styles/edit/%', 0x613a313a7b693a353b733a31363a22696d6167655f7374796c655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32333a2261646d696e697374657220696d616765207374796c6573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31363a22696d6167655f7374796c655f666f726d223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/config/media/image-styles/edit/%', 'Edit style', 't', '', '', 'a:0:{}', 6, 'Configure an image style.', '', 0, 'modules/image/image.admin.inc'), -('admin/config/media/image-styles/edit/%/add/%', 0x613a323a7b693a353b613a313a7b733a31363a22696d6167655f7374796c655f6c6f6164223b613a313a7b693a303b693a353b7d7d693a373b613a313a7b733a32383a22696d6167655f6566666563745f646566696e6974696f6e5f6c6f6164223b613a313a7b693a303b693a353b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32333a2261646d696e697374657220696d616765207374796c6573223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a31373a22696d6167655f6566666563745f666f726d223b693a313b693a353b693a323b693a373b7d, '', 250, 8, 0, '', 'admin/config/media/image-styles/edit/%/add/%', 'Add image effect', 't', '', '', 'a:0:{}', 6, 'Add a new effect to a style.', '', 0, 'modules/image/image.admin.inc'), -('admin/config/media/image-styles/edit/%/effects/%', 0x613a323a7b693a353b613a313a7b733a31363a22696d6167655f7374796c655f6c6f6164223b613a323a7b693a303b693a353b693a313b733a313a2233223b7d7d693a373b613a313a7b733a31373a22696d6167655f6566666563745f6c6f6164223b613a323a7b693a303b693a353b693a313b733a313a2233223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32333a2261646d696e697374657220696d616765207374796c6573223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a31373a22696d6167655f6566666563745f666f726d223b693a313b693a353b693a323b693a373b7d, '', 250, 8, 0, '', 'admin/config/media/image-styles/edit/%/effects/%', 'Edit image effect', 't', '', '', 'a:0:{}', 6, 'Edit an existing effect within a style.', '', 0, 'modules/image/image.admin.inc'), -('admin/config/media/image-styles/edit/%/effects/%/delete', 0x613a323a7b693a353b613a313a7b733a31363a22696d6167655f7374796c655f6c6f6164223b613a323a7b693a303b693a353b693a313b733a313a2233223b7d7d693a373b613a313a7b733a31373a22696d6167655f6566666563745f6c6f6164223b613a323a7b693a303b693a353b693a313b733a313a2233223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32333a2261646d696e697374657220696d616765207374796c6573223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a32343a22696d6167655f6566666563745f64656c6574655f666f726d223b693a313b693a353b693a323b693a373b7d, '', 501, 9, 0, '', 'admin/config/media/image-styles/edit/%/effects/%/delete', 'Delete image effect', 't', '', '', 'a:0:{}', 6, 'Delete an existing effect from a style.', '', 0, 'modules/image/image.admin.inc'), -('admin/config/media/image-styles/list', '', '', 'user_access', 0x613a313a7b693a303b733a32333a2261646d696e697374657220696d616765207374796c6573223b7d, 'image_style_list', 0x613a303a7b7d, '', 31, 5, 1, 'admin/config/media/image-styles', 'admin/config/media/image-styles', 'List', 't', '', '', 'a:0:{}', 140, 'List the current image styles on the site.', '', 1, 'modules/image/image.admin.inc'), -('admin/config/media/image-styles/revert/%', 0x613a313a7b693a353b613a313a7b733a31363a22696d6167655f7374796c655f6c6f6164223b613a323a7b693a303b4e3b693a313b733a313a2232223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32333a2261646d696e697374657220696d616765207374796c6573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32333a22696d6167655f7374796c655f7265766572745f666f726d223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/config/media/image-styles/revert/%', 'Revert style', 't', '', '', 'a:0:{}', 6, 'Revert an image style.', '', 0, 'modules/image/image.admin.inc'), -('admin/config/media/image-toolkit', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32393a2273797374656d5f696d6167655f746f6f6c6b69745f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/media/image-toolkit', 'Image toolkit', 't', '', '', 'a:0:{}', 6, 'Choose which image toolkit to use if you have installed optional toolkits.', '', 20, 'modules/system/system.admin.inc'), -('admin/config/people', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/people', 'People', 't', '', '', 'a:0:{}', 6, 'Configure user accounts.', 'left', -20, 'modules/system/system.admin.inc'), -('admin/config/people/accounts', '', '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31393a22757365725f61646d696e5f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/people/accounts', 'Account settings', 't', '', '', 'a:0:{}', 6, 'Configure default behavior of users, including registration requirements, e-mails, fields, and user pictures.', '', -10, 'modules/user/user.admin.inc'), -('admin/config/people/accounts/display', '', '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a2275736572223b693a323b733a343a2275736572223b693a333b733a373a2264656661756c74223b7d, '', 31, 5, 1, 'admin/config/people/accounts', 'admin/config/people/accounts', 'Manage display', 't', '', '', 'a:0:{}', 132, '', '', 2, 'modules/field_ui/field_ui.admin.inc'), -('admin/config/people/accounts/display/default', '', '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a343a2275736572223b693a313b733a343a2275736572223b693a323b733a373a2264656661756c74223b693a333b733a31313a22757365725f616363657373223b693a343b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a2275736572223b693a323b733a343a2275736572223b693a333b733a373a2264656661756c74223b7d, '', 63, 6, 1, 'admin/config/people/accounts/display', 'admin/config/people/accounts', 'Default', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/field_ui/field_ui.admin.inc'), -('admin/config/people/accounts/display/full', '', '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a343a2275736572223b693a313b733a343a2275736572223b693a323b733a343a2266756c6c223b693a333b733a31313a22757365725f616363657373223b693a343b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a2275736572223b693a323b733a343a2275736572223b693a333b733a343a2266756c6c223b7d, '', 63, 6, 1, 'admin/config/people/accounts/display', 'admin/config/people/accounts', 'User account', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/config/people/accounts/fields', '', '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a32383a226669656c645f75695f6669656c645f6f766572766965775f666f726d223b693a313b733a343a2275736572223b693a323b733a343a2275736572223b7d, '', 31, 5, 1, 'admin/config/people/accounts', 'admin/config/people/accounts', 'Manage fields', 't', '', '', 'a:0:{}', 132, '', '', 1, 'modules/field_ui/field_ui.admin.inc'), -('admin/config/people/accounts/fields/%', 0x613a313a7b693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a2275736572223b693a313b733a343a2275736572223b693a323b733a313a2230223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a226669656c645f75695f6669656c645f656469745f666f726d223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/config/people/accounts/fields/%', '', 'field_ui_menu_title', 'a:1:{i:0;i:5;}', '', 'a:0:{}', 6, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/config/people/accounts/fields/%/delete', 0x613a313a7b693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a2275736572223b693a313b733a343a2275736572223b693a323b733a313a2230223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32363a226669656c645f75695f6669656c645f64656c6574655f666f726d223b693a313b693a353b7d, '', 125, 7, 1, 'admin/config/people/accounts/fields/%', 'admin/config/people/accounts/fields/%', 'Delete', 't', '', '', 'a:0:{}', 132, '', '', 10, 'modules/field_ui/field_ui.admin.inc'), -('admin/config/people/accounts/fields/%/edit', 0x613a313a7b693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a2275736572223b693a313b733a343a2275736572223b693a323b733a313a2230223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a226669656c645f75695f6669656c645f656469745f666f726d223b693a313b693a353b7d, '', 125, 7, 1, 'admin/config/people/accounts/fields/%', 'admin/config/people/accounts/fields/%', 'Edit', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/field_ui/field_ui.admin.inc'); -INSERT INTO `menu_router` (`path`, `load_functions`, `to_arg_functions`, `access_callback`, `access_arguments`, `page_callback`, `page_arguments`, `delivery_callback`, `fit`, `number_parts`, `context`, `tab_parent`, `tab_root`, `title`, `title_callback`, `title_arguments`, `theme_callback`, `theme_arguments`, `type`, `description`, `position`, `weight`, `include_file`) VALUES -('admin/config/people/accounts/fields/%/field-settings', 0x613a313a7b693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a2275736572223b693a313b733a343a2275736572223b693a323b733a313a2230223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32383a226669656c645f75695f6669656c645f73657474696e67735f666f726d223b693a313b693a353b7d, '', 125, 7, 1, 'admin/config/people/accounts/fields/%', 'admin/config/people/accounts/fields/%', 'Field settings', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/config/people/accounts/fields/%/widget-type', 0x613a313a7b693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a2275736572223b693a313b733a343a2275736572223b693a323b733a313a2230223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32353a226669656c645f75695f7769646765745f747970655f666f726d223b693a313b693a353b7d, '', 125, 7, 1, 'admin/config/people/accounts/fields/%', 'admin/config/people/accounts/fields/%', 'Widget type', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/config/people/accounts/settings', '', '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31393a22757365725f61646d696e5f73657474696e6773223b7d, '', 31, 5, 1, 'admin/config/people/accounts', 'admin/config/people/accounts', 'Settings', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/user/user.admin.inc'), -('admin/config/people/ip-blocking', '', '', 'user_access', 0x613a313a7b693a303b733a31383a22626c6f636b20495020616464726573736573223b7d, 'system_ip_blocking', 0x613a303a7b7d, '', 15, 4, 0, '', 'admin/config/people/ip-blocking', 'IP address blocking', 't', '', '', 'a:0:{}', 6, 'Manage blocked IP addresses.', '', 10, 'modules/system/system.admin.inc'), -('admin/config/people/ip-blocking/delete/%', 0x613a313a7b693a353b733a31353a22626c6f636b65645f69705f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31383a22626c6f636b20495020616464726573736573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32353a2273797374656d5f69705f626c6f636b696e675f64656c657465223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/config/people/ip-blocking/delete/%', 'Delete IP address', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/system/system.admin.inc'), -('admin/config/regional', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/regional', 'Regional and language', 't', '', '', 'a:0:{}', 6, 'Regional settings, localization and translation.', 'left', -5, 'modules/system/system.admin.inc'), -('admin/config/regional/date-time', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32353a2273797374656d5f646174655f74696d655f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/regional/date-time', 'Date and time', 't', '', '', 'a:0:{}', 6, 'Configure display formats for date and time.', '', -15, 'modules/system/system.admin.inc'), -('admin/config/regional/date-time/formats', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'system_date_time_formats', 0x613a303a7b7d, '', 31, 5, 1, 'admin/config/regional/date-time', 'admin/config/regional/date-time', 'Formats', 't', '', '', 'a:0:{}', 132, 'Configure display format strings for date and time.', '', -9, 'modules/system/system.admin.inc'), -('admin/config/regional/date-time/formats/%/delete', 0x613a313a7b693a353b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a33303a2273797374656d5f646174655f64656c6574655f666f726d61745f666f726d223b693a313b693a353b7d, '', 125, 7, 0, '', 'admin/config/regional/date-time/formats/%/delete', 'Delete date format', 't', '', '', 'a:0:{}', 6, 'Allow users to delete a configured date format.', '', 0, 'modules/system/system.admin.inc'), -('admin/config/regional/date-time/formats/%/edit', 0x613a313a7b693a353b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a33343a2273797374656d5f636f6e6669677572655f646174655f666f726d6174735f666f726d223b693a313b693a353b7d, '', 125, 7, 0, '', 'admin/config/regional/date-time/formats/%/edit', 'Edit date format', 't', '', '', 'a:0:{}', 6, 'Allow users to edit a configured date format.', '', 0, 'modules/system/system.admin.inc'), -('admin/config/regional/date-time/formats/add', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a33343a2273797374656d5f636f6e6669677572655f646174655f666f726d6174735f666f726d223b7d, '', 63, 6, 1, 'admin/config/regional/date-time/formats', 'admin/config/regional/date-time', 'Add format', 't', '', '', 'a:0:{}', 388, 'Allow users to add additional date formats.', '', -10, 'modules/system/system.admin.inc'), -('admin/config/regional/date-time/formats/lookup', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'system_date_time_lookup', 0x613a303a7b7d, '', 63, 6, 0, '', 'admin/config/regional/date-time/formats/lookup', 'Date and time lookup', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('admin/config/regional/date-time/types', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32353a2273797374656d5f646174655f74696d655f73657474696e6773223b7d, '', 31, 5, 1, 'admin/config/regional/date-time', 'admin/config/regional/date-time', 'Types', 't', '', '', 'a:0:{}', 140, 'Configure display formats for date and time.', '', -10, 'modules/system/system.admin.inc'), -('admin/config/regional/date-time/types/%/delete', 0x613a313a7b693a353b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a33353a2273797374656d5f64656c6574655f646174655f666f726d61745f747970655f666f726d223b693a313b693a353b7d, '', 125, 7, 0, '', 'admin/config/regional/date-time/types/%/delete', 'Delete date type', 't', '', '', 'a:0:{}', 6, 'Allow users to delete a configured date type.', '', 0, 'modules/system/system.admin.inc'), -('admin/config/regional/date-time/types/add', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a33323a2273797374656d5f6164645f646174655f666f726d61745f747970655f666f726d223b7d, '', 63, 6, 1, 'admin/config/regional/date-time/types', 'admin/config/regional/date-time', 'Add date type', 't', '', '', 'a:0:{}', 388, 'Add new date type.', '', -10, 'modules/system/system.admin.inc'), -('admin/config/regional/settings', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32343a2273797374656d5f726567696f6e616c5f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/regional/settings', 'Regional settings', 't', '', '', 'a:0:{}', 6, 'Settings for the site''s default time zone and country.', '', -20, 'modules/system/system.admin.inc'), -('admin/config/search', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/search', 'Search and metadata', 't', '', '', 'a:0:{}', 6, 'Local site search, metadata and SEO.', 'left', -10, 'modules/system/system.admin.inc'), -('admin/config/search/clean-urls', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32353a2273797374656d5f636c65616e5f75726c5f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/search/clean-urls', 'Clean URLs', 't', '', '', 'a:0:{}', 6, 'Enable or disable clean URLs for your site.', '', 5, 'modules/system/system.admin.inc'), -('admin/config/search/clean-urls/check', '', '', '1', 0x613a303a7b7d, 'drupal_json_output', 0x613a313a7b693a303b613a313a7b733a363a22737461747573223b623a313b7d7d, '', 31, 5, 0, '', 'admin/config/search/clean-urls/check', 'Clean URL check', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('admin/config/search/path', '', '', 'user_access', 0x613a313a7b693a303b733a32323a2261646d696e69737465722075726c20616c6961736573223b7d, 'path_admin_overview', 0x613a303a7b7d, '', 15, 4, 0, '', 'admin/config/search/path', 'URL aliases', 't', '', '', 'a:0:{}', 6, 'Change your site''s URL paths by aliasing them.', '', -5, 'modules/path/path.admin.inc'), -('admin/config/search/path/add', '', '', 'user_access', 0x613a313a7b693a303b733a32323a2261646d696e69737465722075726c20616c6961736573223b7d, 'path_admin_edit', 0x613a303a7b7d, '', 31, 5, 1, 'admin/config/search/path', 'admin/config/search/path', 'Add alias', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/path/path.admin.inc'), -('admin/config/search/path/delete/%', 0x613a313a7b693a353b733a393a22706174685f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32323a2261646d696e69737465722075726c20616c6961736573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32353a22706174685f61646d696e5f64656c6574655f636f6e6669726d223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/config/search/path/delete/%', 'Delete alias', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/path/path.admin.inc'), -('admin/config/search/path/edit/%', 0x613a313a7b693a353b733a393a22706174685f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32323a2261646d696e69737465722075726c20616c6961736573223b7d, 'path_admin_edit', 0x613a313a7b693a303b693a353b7d, '', 62, 6, 0, '', 'admin/config/search/path/edit/%', 'Edit alias', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/path/path.admin.inc'), -('admin/config/search/path/list', '', '', 'user_access', 0x613a313a7b693a303b733a32323a2261646d696e69737465722075726c20616c6961736573223b7d, 'path_admin_overview', 0x613a303a7b7d, '', 31, 5, 1, 'admin/config/search/path', 'admin/config/search/path', 'List', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/path/path.admin.inc'), -('admin/config/search/settings', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220736561726368223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32313a227365617263685f61646d696e5f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/search/settings', 'Search settings', 't', '', '', 'a:0:{}', 6, 'Configure relevance settings for search and other indexing options.', '', -10, 'modules/search/search.admin.inc'), -('admin/config/search/settings/reindex', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220736561726368223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32323a227365617263685f7265696e6465785f636f6e6669726d223b7d, '', 31, 5, 0, '', 'admin/config/search/settings/reindex', 'Clear index', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/search/search.admin.inc'), -('admin/config/services', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/services', 'Web services', 't', '', '', 'a:0:{}', 6, 'Tools related to web services.', 'right', 0, 'modules/system/system.admin.inc'), -('admin/config/services/rss-publishing', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32353a2273797374656d5f7273735f66656564735f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/services/rss-publishing', 'RSS publishing', 't', '', '', 'a:0:{}', 6, 'Configure the site description, the number of items per feed and whether feeds should be titles/teasers/full-text.', '', 0, 'modules/system/system.admin.inc'), -('admin/config/system', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/system', 'System', 't', '', '', 'a:0:{}', 6, 'General system related configuration.', 'right', -20, 'modules/system/system.admin.inc'), -('admin/config/system/actions', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e697374657220616374696f6e73223b7d, 'system_actions_manage', 0x613a303a7b7d, '', 15, 4, 0, '', 'admin/config/system/actions', 'Actions', 't', '', '', 'a:0:{}', 6, 'Manage the actions defined for your site.', '', 0, 'modules/system/system.admin.inc'), -('admin/config/system/actions/configure', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e697374657220616374696f6e73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32343a2273797374656d5f616374696f6e735f636f6e666967757265223b7d, '', 31, 5, 0, '', 'admin/config/system/actions/configure', 'Configure an advanced action', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/system/system.admin.inc'), -('admin/config/system/actions/delete/%', 0x613a313a7b693a353b733a31323a22616374696f6e735f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e697374657220616374696f6e73223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32363a2273797374656d5f616374696f6e735f64656c6574655f666f726d223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/config/system/actions/delete/%', 'Delete action', 't', '', '', 'a:0:{}', 6, 'Delete an action.', '', 0, 'modules/system/system.admin.inc'), -('admin/config/system/actions/manage', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e697374657220616374696f6e73223b7d, 'system_actions_manage', 0x613a303a7b7d, '', 31, 5, 1, 'admin/config/system/actions', 'admin/config/system/actions', 'Manage actions', 't', '', '', 'a:0:{}', 140, 'Manage the actions defined for your site.', '', -2, 'modules/system/system.admin.inc'), -('admin/config/system/actions/orphan', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e697374657220616374696f6e73223b7d, 'system_actions_remove_orphans', 0x613a303a7b7d, '', 31, 5, 0, '', 'admin/config/system/actions/orphan', 'Remove orphans', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('admin/config/system/cron', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32303a2273797374656d5f63726f6e5f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/system/cron', 'Cron', 't', '', '', 'a:0:{}', 6, 'Manage automatic site maintenance tasks.', '', 20, 'modules/system/system.admin.inc'), -('admin/config/system/site-information', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a33323a2273797374656d5f736974655f696e666f726d6174696f6e5f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/system/site-information', 'Site information', 't', '', '', 'a:0:{}', 6, 'Change site name, e-mail address, slogan, default front page, and number of posts per page, error pages.', '', -20, 'modules/system/system.admin.inc'), -('admin/config/user-interface', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/user-interface', 'User interface', 't', '', '', 'a:0:{}', 6, 'Tools that enhance the user interface.', 'right', -15, 'modules/system/system.admin.inc'), -('admin/config/user-interface/shortcut', '', '', 'user_access', 0x613a313a7b693a303b733a32303a2261646d696e69737465722073686f727463757473223b7d, 'shortcut_set_admin', 0x613a303a7b7d, '', 15, 4, 0, '', 'admin/config/user-interface/shortcut', 'Shortcuts', 't', '', '', 'a:0:{}', 6, 'Add and modify shortcut sets.', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/shortcut/%', 0x613a313a7b693a343b733a31373a2273686f72746375745f7365745f6c6f6164223b7d, '', 'shortcut_set_edit_access', 0x613a313a7b693a303b693a343b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32323a2273686f72746375745f7365745f637573746f6d697a65223b693a313b693a343b7d, '', 30, 5, 0, '', 'admin/config/user-interface/shortcut/%', 'Edit shortcuts', 'shortcut_set_title_callback', 'a:1:{i:0;i:4;}', '', 'a:0:{}', 6, '', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/shortcut/%/add-link', 0x613a313a7b693a343b733a31373a2273686f72746375745f7365745f6c6f6164223b7d, '', 'shortcut_set_edit_access', 0x613a313a7b693a303b693a343b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31373a2273686f72746375745f6c696e6b5f616464223b693a313b693a343b7d, '', 61, 6, 1, 'admin/config/user-interface/shortcut/%', 'admin/config/user-interface/shortcut/%', 'Add shortcut', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/shortcut/%/add-link-inline', 0x613a313a7b693a343b733a31373a2273686f72746375745f7365745f6c6f6164223b7d, '', 'shortcut_set_edit_access', 0x613a313a7b693a303b693a343b7d, 'shortcut_link_add_inline', 0x613a313a7b693a303b693a343b7d, '', 61, 6, 0, '', 'admin/config/user-interface/shortcut/%/add-link-inline', 'Add shortcut', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/shortcut/%/delete', 0x613a313a7b693a343b733a31373a2273686f72746375745f7365745f6c6f6164223b7d, '', 'shortcut_set_delete_access', 0x613a313a7b693a303b693a343b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a2273686f72746375745f7365745f64656c6574655f666f726d223b693a313b693a343b7d, '', 61, 6, 0, '', 'admin/config/user-interface/shortcut/%/delete', 'Delete shortcut set', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/shortcut/%/edit', 0x613a313a7b693a343b733a31373a2273686f72746375745f7365745f6c6f6164223b7d, '', 'shortcut_set_edit_access', 0x613a313a7b693a303b693a343b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32323a2273686f72746375745f7365745f656469745f666f726d223b693a313b693a343b7d, '', 61, 6, 1, 'admin/config/user-interface/shortcut/%', 'admin/config/user-interface/shortcut/%', 'Edit set name', 't', '', '', 'a:0:{}', 132, '', '', 10, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/shortcut/%/links', 0x613a313a7b693a343b733a31373a2273686f72746375745f7365745f6c6f6164223b7d, '', 'shortcut_set_edit_access', 0x613a313a7b693a303b693a343b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32323a2273686f72746375745f7365745f637573746f6d697a65223b693a313b693a343b7d, '', 61, 6, 1, 'admin/config/user-interface/shortcut/%', 'admin/config/user-interface/shortcut/%', 'List links', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/shortcut/add-set', '', '', 'user_access', 0x613a313a7b693a303b733a32303a2261646d696e69737465722073686f727463757473223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32313a2273686f72746375745f7365745f6164645f666f726d223b7d, '', 31, 5, 1, 'admin/config/user-interface/shortcut', 'admin/config/user-interface/shortcut', 'Add shortcut set', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/shortcut/link/%', 0x613a313a7b693a353b733a31343a226d656e755f6c696e6b5f6c6f6164223b7d, '', 'shortcut_link_access', 0x613a313a7b693a303b693a353b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31383a2273686f72746375745f6c696e6b5f65646974223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/config/user-interface/shortcut/link/%', 'Edit shortcut', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/shortcut/link/%/delete', 0x613a313a7b693a353b733a31343a226d656e755f6c696e6b5f6c6f6164223b7d, '', 'shortcut_link_access', 0x613a313a7b693a303b693a353b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32303a2273686f72746375745f6c696e6b5f64656c657465223b693a313b693a353b7d, '', 125, 7, 0, '', 'admin/config/user-interface/shortcut/link/%/delete', 'Delete shortcut', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('admin/config/user-interface/superfish', '', '', 'user_access', 0x613a313a7b693a303b733a32303a2261646d696e697374657220737570657266697368223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32343a227375706572666973685f61646d696e5f73657474696e6773223b7d, '', 15, 4, 0, '', 'admin/config/user-interface/superfish', 'Superfish', 't', '', '', 'a:0:{}', 6, 'Configure Superfish Menus', '', 0, 'sites/all/modules/superfish/superfish.admin.inc'), -('admin/config/workflow', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/config/workflow', 'Workflow', 't', '', '', 'a:0:{}', 6, 'Content workflow, editorial workflow tools.', 'right', 5, 'modules/system/system.admin.inc'), -('admin/content', '', '', 'user_access', 0x613a313a7b693a303b733a32333a2261636365737320636f6e74656e74206f76657276696577223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31383a226e6f64655f61646d696e5f636f6e74656e74223b7d, '', 3, 2, 0, '', 'admin/content', 'Content', 't', '', '', 'a:0:{}', 6, 'Administer content and comments.', '', -10, 'modules/node/node.admin.inc'), -('admin/content/comment', '', '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e697374657220636f6d6d656e7473223b7d, 'comment_admin', 0x613a303a7b7d, '', 7, 3, 1, 'admin/content', 'admin/content', 'Comments', 't', '', '', 'a:0:{}', 134, 'List and edit site comments and the comment approval queue.', '', 0, 'modules/comment/comment.admin.inc'), -('admin/content/comment/approval', '', '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e697374657220636f6d6d656e7473223b7d, 'comment_admin', 0x613a313a7b693a303b733a383a22617070726f76616c223b7d, '', 15, 4, 1, 'admin/content/comment', 'admin/content', 'Unapproved comments', 'comment_count_unpublished', '', '', 'a:0:{}', 132, '', '', 0, 'modules/comment/comment.admin.inc'), -('admin/content/comment/new', '', '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e697374657220636f6d6d656e7473223b7d, 'comment_admin', 0x613a303a7b7d, '', 15, 4, 1, 'admin/content/comment', 'admin/content', 'Published comments', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/comment/comment.admin.inc'), -('admin/content/node', '', '', 'user_access', 0x613a313a7b693a303b733a32333a2261636365737320636f6e74656e74206f76657276696577223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31383a226e6f64655f61646d696e5f636f6e74656e74223b7d, '', 7, 3, 1, 'admin/content', 'admin/content', 'Content', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/node/node.admin.inc'), -('admin/dashboard', '', '', 'user_access', 0x613a313a7b693a303b733a31363a226163636573732064617368626f617264223b7d, 'dashboard_admin', 0x613a303a7b7d, '', 3, 2, 0, '', 'admin/dashboard', 'Dashboard', 't', '', '', 'a:0:{}', 6, 'View and customize your dashboard.', '', -15, ''), -('admin/dashboard/block-content/%/%', 0x613a323a7b693a333b4e3b693a343b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'dashboard_show_block_content', 0x613a323a7b693a303b693a333b693a313b693a343b7d, '', 28, 5, 0, '', 'admin/dashboard/block-content/%/%', '', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('admin/dashboard/configure', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'dashboard_admin_blocks', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/dashboard/configure', 'Configure available dashboard blocks', 't', '', '', 'a:0:{}', 4, 'Configure which blocks can be shown on the dashboard.', '', 0, ''), -('admin/dashboard/customize', '', '', 'user_access', 0x613a313a7b693a303b733a31363a226163636573732064617368626f617264223b7d, 'dashboard_admin', 0x613a313a7b693a303b623a313b7d, '', 7, 3, 0, '', 'admin/dashboard/customize', 'Customize dashboard', 't', '', '', 'a:0:{}', 4, 'Customize your dashboard.', '', 0, ''), -('admin/dashboard/drawer', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'dashboard_show_disabled', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/dashboard/drawer', '', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('admin/dashboard/update', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'dashboard_update', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/dashboard/update', '', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('admin/help', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_main', 0x613a303a7b7d, '', 3, 2, 0, '', 'admin/help', 'Help', 't', '', '', 'a:0:{}', 6, 'Reference for usage, configuration, and modules.', '', 9, 'modules/help/help.admin.inc'), -('admin/help/block', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/block', 'block', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/blog', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/blog', 'blog', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/color', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/color', 'color', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/comment', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/comment', 'comment', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/contact', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/contact', 'contact', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/contextual', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/contextual', 'contextual', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/dashboard', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/dashboard', 'dashboard', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/dblog', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/dblog', 'dblog', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/field', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/field', 'field', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/field_sql_storage', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/field_sql_storage', 'field_sql_storage', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/field_ui', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/field_ui', 'field_ui', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/file', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/file', 'file', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/filter', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/filter', 'filter', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/help', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/help', 'help', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/image', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/image', 'image', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/list', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/list', 'list', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/menu', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/menu', 'menu', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/node', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/node', 'node', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/number', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/number', 'number', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/options', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/options', 'options', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/overlay', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/overlay', 'overlay', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/path', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/path', 'path', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/php', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/php', 'php', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/rdf', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/rdf', 'rdf', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/search', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/search', 'search', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/shortcut', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/shortcut', 'shortcut', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/superfish', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/superfish', 'superfish', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/system', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/system', 'system', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/taxonomy', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/taxonomy', 'taxonomy', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/text', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/text', 'text', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/toolbar', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/toolbar', 'toolbar', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/update', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/update', 'update', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/help/user', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'help_page', 0x613a313a7b693a303b693a323b7d, '', 7, 3, 0, '', 'admin/help/user', 'user', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/help/help.admin.inc'), -('admin/index', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_index', 0x613a303a7b7d, '', 3, 2, 1, 'admin', 'admin', 'Index', 't', '', '', 'a:0:{}', 132, '', '', -18, 'modules/system/system.admin.inc'), -('admin/modules', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e6973746572206d6f64756c6573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31343a2273797374656d5f6d6f64756c6573223b7d, '', 3, 2, 0, '', 'admin/modules', 'Modules', 't', '', '', 'a:0:{}', 6, 'Extend site functionality.', '', -2, 'modules/system/system.admin.inc'), -('admin/modules/install', '', '', 'update_manager_access', 0x613a303a7b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32373a227570646174655f6d616e616765725f696e7374616c6c5f666f726d223b693a313b733a363a226d6f64756c65223b7d, '', 7, 3, 1, 'admin/modules', 'admin/modules', 'Install new module', 't', '', '', 'a:0:{}', 388, '', '', 25, 'modules/update/update.manager.inc'), -('admin/modules/list', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e6973746572206d6f64756c6573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31343a2273797374656d5f6d6f64756c6573223b7d, '', 7, 3, 1, 'admin/modules', 'admin/modules', 'List', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/system/system.admin.inc'), -('admin/modules/list/confirm', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e6973746572206d6f64756c6573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31343a2273797374656d5f6d6f64756c6573223b7d, '', 15, 4, 0, '', 'admin/modules/list/confirm', 'List', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/system/system.admin.inc'), -('admin/modules/uninstall', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e6973746572206d6f64756c6573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32343a2273797374656d5f6d6f64756c65735f756e696e7374616c6c223b7d, '', 7, 3, 1, 'admin/modules', 'admin/modules', 'Uninstall', 't', '', '', 'a:0:{}', 132, '', '', 20, 'modules/system/system.admin.inc'), -('admin/modules/uninstall/confirm', '', '', 'user_access', 0x613a313a7b693a303b733a31383a2261646d696e6973746572206d6f64756c6573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32343a2273797374656d5f6d6f64756c65735f756e696e7374616c6c223b7d, '', 15, 4, 0, '', 'admin/modules/uninstall/confirm', 'Uninstall', 't', '', '', 'a:0:{}', 4, '', '', 0, 'modules/system/system.admin.inc'), -('admin/modules/update', '', '', 'update_manager_access', 0x613a303a7b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32363a227570646174655f6d616e616765725f7570646174655f666f726d223b693a313b733a363a226d6f64756c65223b7d, '', 7, 3, 1, 'admin/modules', 'admin/modules', 'Update', 't', '', '', 'a:0:{}', 132, '', '', 10, 'modules/update/update.manager.inc'), -('admin/people', '', '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'user_admin', 0x613a313a7b693a303b733a343a226c697374223b7d, '', 3, 2, 0, '', 'admin/people', 'People', 't', '', '', 'a:0:{}', 6, 'Manage user accounts, roles, and permissions.', 'left', -4, 'modules/user/user.admin.inc'), -('admin/people/create', '', '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'user_admin', 0x613a313a7b693a303b733a363a22637265617465223b7d, '', 7, 3, 1, 'admin/people', 'admin/people', 'Add user', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/user/user.admin.inc'), -('admin/people/people', '', '', 'user_access', 0x613a313a7b693a303b733a31363a2261646d696e6973746572207573657273223b7d, 'user_admin', 0x613a313a7b693a303b733a343a226c697374223b7d, '', 7, 3, 1, 'admin/people', 'admin/people', 'List', 't', '', '', 'a:0:{}', 140, 'Find and manage people interacting with your site.', '', -10, 'modules/user/user.admin.inc'), -('admin/people/permissions', '', '', 'user_access', 0x613a313a7b693a303b733a32323a2261646d696e6973746572207065726d697373696f6e73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32323a22757365725f61646d696e5f7065726d697373696f6e73223b7d, '', 7, 3, 1, 'admin/people', 'admin/people', 'Permissions', 't', '', '', 'a:0:{}', 132, 'Determine access to features by selecting permissions for roles.', '', 0, 'modules/user/user.admin.inc'), -('admin/people/permissions/list', '', '', 'user_access', 0x613a313a7b693a303b733a32323a2261646d696e6973746572207065726d697373696f6e73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32323a22757365725f61646d696e5f7065726d697373696f6e73223b7d, '', 15, 4, 1, 'admin/people/permissions', 'admin/people', 'Permissions', 't', '', '', 'a:0:{}', 140, 'Determine access to features by selecting permissions for roles.', '', -8, 'modules/user/user.admin.inc'), -('admin/people/permissions/roles', '', '', 'user_access', 0x613a313a7b693a303b733a32323a2261646d696e6973746572207065726d697373696f6e73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31363a22757365725f61646d696e5f726f6c6573223b7d, '', 15, 4, 1, 'admin/people/permissions', 'admin/people', 'Roles', 't', '', '', 'a:0:{}', 132, 'List, edit, or add user roles.', '', -5, 'modules/user/user.admin.inc'), -('admin/people/permissions/roles/delete/%', 0x613a313a7b693a353b733a31343a22757365725f726f6c655f6c6f6164223b7d, '', 'user_role_edit_access', 0x613a313a7b693a303b693a353b7d, 'drupal_get_form', 0x613a323a7b693a303b733a33303a22757365725f61646d696e5f726f6c655f64656c6574655f636f6e6669726d223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/people/permissions/roles/delete/%', 'Delete role', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/user/user.admin.inc'), -('admin/people/permissions/roles/edit/%', 0x613a313a7b693a353b733a31343a22757365725f726f6c655f6c6f6164223b7d, '', 'user_role_edit_access', 0x613a313a7b693a303b693a353b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31353a22757365725f61646d696e5f726f6c65223b693a313b693a353b7d, '', 62, 6, 0, '', 'admin/people/permissions/roles/edit/%', 'Edit role', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/user/user.admin.inc'), -('admin/reports', '', '', 'user_access', 0x613a313a7b693a303b733a31393a226163636573732073697465207265706f727473223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 3, 2, 0, '', 'admin/reports', 'Reports', 't', '', '', 'a:0:{}', 6, 'View reports, updates, and errors.', 'left', 5, 'modules/system/system.admin.inc'), -('admin/reports/access-denied', '', '', 'user_access', 0x613a313a7b693a303b733a31393a226163636573732073697465207265706f727473223b7d, 'dblog_top', 0x613a313a7b693a303b733a31333a226163636573732064656e696564223b7d, '', 7, 3, 0, '', 'admin/reports/access-denied', 'Top ''access denied'' errors', 't', '', '', 'a:0:{}', 6, 'View ''access denied'' errors (403s).', '', 0, 'modules/dblog/dblog.admin.inc'), -('admin/reports/dblog', '', '', 'user_access', 0x613a313a7b693a303b733a31393a226163636573732073697465207265706f727473223b7d, 'dblog_overview', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/reports/dblog', 'Recent log messages', 't', '', '', 'a:0:{}', 6, 'View events that have recently been logged.', '', -1, 'modules/dblog/dblog.admin.inc'), -('admin/reports/event/%', 0x613a313a7b693a333b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31393a226163636573732073697465207265706f727473223b7d, 'dblog_event', 0x613a313a7b693a303b693a333b7d, '', 14, 4, 0, '', 'admin/reports/event/%', 'Details', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/dblog/dblog.admin.inc'), -('admin/reports/fields', '', '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'field_ui_fields_list', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/reports/fields', 'Field list', 't', '', '', 'a:0:{}', 6, 'Overview of fields on all entity types.', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/reports/page-not-found', '', '', 'user_access', 0x613a313a7b693a303b733a31393a226163636573732073697465207265706f727473223b7d, 'dblog_top', 0x613a313a7b693a303b733a31343a2270616765206e6f7420666f756e64223b7d, '', 7, 3, 0, '', 'admin/reports/page-not-found', 'Top ''page not found'' errors', 't', '', '', 'a:0:{}', 6, 'View ''page not found'' errors (404s).', '', 0, 'modules/dblog/dblog.admin.inc'), -('admin/reports/search', '', '', 'user_access', 0x613a313a7b693a303b733a31393a226163636573732073697465207265706f727473223b7d, 'dblog_top', 0x613a313a7b693a303b733a363a22736561726368223b7d, '', 7, 3, 0, '', 'admin/reports/search', 'Top search phrases', 't', '', '', 'a:0:{}', 6, 'View most popular search phrases.', '', 0, 'modules/dblog/dblog.admin.inc'), -('admin/reports/status', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'system_status', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/reports/status', 'Status report', 't', '', '', 'a:0:{}', 6, 'Get a status report about your site''s operation and any detected problems.', '', -60, 'modules/system/system.admin.inc'), -('admin/reports/status/php', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'system_php', 0x613a303a7b7d, '', 15, 4, 0, '', 'admin/reports/status/php', 'PHP', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('admin/reports/status/rebuild', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a33303a226e6f64655f636f6e6669677572655f72656275696c645f636f6e6669726d223b7d, '', 15, 4, 0, '', 'admin/reports/status/rebuild', 'Rebuild permissions', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/node/node.admin.inc'), -('admin/reports/status/run-cron', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'system_run_cron', 0x613a303a7b7d, '', 15, 4, 0, '', 'admin/reports/status/run-cron', 'Run cron', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('admin/reports/updates', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'update_status', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/reports/updates', 'Available updates', 't', '', '', 'a:0:{}', 6, 'Get a status report about available updates for your installed modules and themes.', '', -50, 'modules/update/update.report.inc'), -('admin/reports/updates/check', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'update_manual_status', 0x613a303a7b7d, '', 15, 4, 0, '', 'admin/reports/updates/check', 'Manual update check', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/update/update.fetch.inc'), -('admin/reports/updates/install', '', '', 'update_manager_access', 0x613a303a7b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32373a227570646174655f6d616e616765725f696e7374616c6c5f666f726d223b693a313b733a363a227265706f7274223b7d, '', 15, 4, 1, 'admin/reports/updates', 'admin/reports/updates', 'Install new module or theme', 't', '', '', 'a:0:{}', 388, '', '', 25, 'modules/update/update.manager.inc'), -('admin/reports/updates/list', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'update_status', 0x613a303a7b7d, '', 15, 4, 1, 'admin/reports/updates', 'admin/reports/updates', 'List', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/update/update.report.inc'), -('admin/reports/updates/settings', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261646d696e6973746572207369746520636f6e66696775726174696f6e223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31353a227570646174655f73657474696e6773223b7d, '', 15, 4, 1, 'admin/reports/updates', 'admin/reports/updates', 'Settings', 't', '', '', 'a:0:{}', 132, '', '', 50, 'modules/update/update.settings.inc'), -('admin/reports/updates/update', '', '', 'update_manager_access', 0x613a303a7b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32363a227570646174655f6d616e616765725f7570646174655f666f726d223b693a313b733a363a227265706f7274223b7d, '', 15, 4, 1, 'admin/reports/updates', 'admin/reports/updates', 'Update', 't', '', '', 'a:0:{}', 132, '', '', 10, 'modules/update/update.manager.inc'), -('admin/structure', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 3, 2, 0, '', 'admin/structure', 'Structure', 't', '', '', 'a:0:{}', 6, 'Administer blocks, content types, menus, etc.', 'right', -8, 'modules/system/system.admin.inc'), -('admin/structure/block', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'block_admin_display', 0x613a313a7b693a303b733a31303a2273696d706c65636f7270223b7d, '', 7, 3, 0, '', 'admin/structure/block', 'Blocks', 't', '', '', 'a:0:{}', 6, 'Configure what block content appears in your site''s sidebars and other regions.', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/add', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32303a22626c6f636b5f6164645f626c6f636b5f666f726d223b7d, '', 15, 4, 1, 'admin/structure/block', 'admin/structure/block', 'Add block', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/block/block.admin.inc'); -INSERT INTO `menu_router` (`path`, `load_functions`, `to_arg_functions`, `access_callback`, `access_arguments`, `page_callback`, `page_arguments`, `delivery_callback`, `fit`, `number_parts`, `context`, `tab_parent`, `tab_root`, `title`, `title_callback`, `title_arguments`, `theme_callback`, `theme_arguments`, `type`, `description`, `position`, `weight`, `include_file`) VALUES -('admin/structure/block/demo/bartik', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32353a227468656d65732f62617274696b2f62617274696b2e696e666f223b733a343a226e616d65223b733a363a2262617274696b223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2231223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31383a7b733a343a226e616d65223b733a363a2242617274696b223b733a31313a226465736372697074696f6e223b733a34383a224120666c657869626c652c207265636f6c6f7261626c65207468656d652077697468206d616e7920726567696f6e732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a333a7b733a31343a226373732f6c61796f75742e637373223b733a32383a227468656d65732f62617274696b2f6373732f6c61796f75742e637373223b733a31333a226373732f7374796c652e637373223b733a32373a227468656d65732f62617274696b2f6373732f7374796c652e637373223b733a31343a226373732f636f6c6f72732e637373223b733a32383a227468656d65732f62617274696b2f6373732f636f6c6f72732e637373223b7d733a353a227072696e74223b613a313a7b733a31333a226373732f7072696e742e637373223b733a32373a227468656d65732f62617274696b2f6373732f7072696e742e637373223b7d7d733a373a22726567696f6e73223b613a32303a7b733a363a22686561646572223b733a363a22486561646572223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a383a226665617475726564223b733a383a224665617475726564223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a31333a22736964656261725f6669727374223b733a31333a2253696465626172206669727374223b733a31343a22736964656261725f7365636f6e64223b733a31343a2253696465626172207365636f6e64223b733a31343a2274726970747963685f6669727374223b733a31343a225472697074796368206669727374223b733a31353a2274726970747963685f6d6964646c65223b733a31353a225472697074796368206d6964646c65223b733a31333a2274726970747963685f6c617374223b733a31333a225472697074796368206c617374223b733a31383a22666f6f7465725f6669727374636f6c756d6e223b733a31393a22466f6f74657220666972737420636f6c756d6e223b733a31393a22666f6f7465725f7365636f6e64636f6c756d6e223b733a32303a22466f6f746572207365636f6e6420636f6c756d6e223b733a31383a22666f6f7465725f7468697264636f6c756d6e223b733a31393a22466f6f74657220746869726420636f6c756d6e223b733a31393a22666f6f7465725f666f75727468636f6c756d6e223b733a32303a22466f6f74657220666f7572746820636f6c756d6e223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a2273657474696e6773223b613a313a7b733a32303a2273686f72746375745f6d6f64756c655f6c696e6b223b733a313a2230223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32383a227468656d65732f62617274696b2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a333a7b733a31343a226373732f6c61796f75742e637373223b733a32383a227468656d65732f62617274696b2f6373732f6c61796f75742e637373223b733a31333a226373732f7374796c652e637373223b733a32373a227468656d65732f62617274696b2f6373732f7374796c652e637373223b733a31343a226373732f636f6c6f72732e637373223b733a32383a227468656d65732f62617274696b2f6373732f636f6c6f72732e637373223b7d733a353a227072696e74223b613a313a7b733a31333a226373732f7072696e742e637373223b733a32373a227468656d65732f62617274696b2f6373732f7072696e742e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_demo', 0x613a313a7b693a303b733a363a2262617274696b223b7d, '', 31, 5, 0, '', 'admin/structure/block/demo/bartik', 'Bartik', 't', '', '_block_custom_theme', 'a:1:{i:0;s:6:"bartik";}', 0, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/demo/garland', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32373a227468656d65732f6761726c616e642f6761726c616e642e696e666f223b733a343a226e616d65223b733a373a226761726c616e64223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2230223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31383a7b733a343a226e616d65223b733a373a224761726c616e64223b733a31313a226465736372697074696f6e223b733a3131313a2241206d756c74692d636f6c756d6e207468656d652077686963682063616e20626520636f6e6669677572656420746f206d6f6469667920636f6c6f727320616e6420737769746368206265747765656e20666978656420616e6420666c756964207769647468206c61796f7574732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a313a7b733a393a227374796c652e637373223b733a32343a227468656d65732f6761726c616e642f7374796c652e637373223b7d733a353a227072696e74223b613a313a7b733a393a227072696e742e637373223b733a32343a227468656d65732f6761726c616e642f7072696e742e637373223b7d7d733a383a2273657474696e6773223b613a313a7b733a31333a226761726c616e645f7769647468223b733a353a22666c756964223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a373a22726567696f6e73223b613a31323a7b733a31333a22736964656261725f6669727374223b733a31323a224c6566742073696465626172223b733a31343a22736964656261725f7365636f6e64223b733a31333a2252696768742073696465626172223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a363a22686561646572223b733a363a22486561646572223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32393a227468656d65732f6761726c616e642f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a313a7b733a393a227374796c652e637373223b733a32343a227468656d65732f6761726c616e642f7374796c652e637373223b7d733a353a227072696e74223b613a313a7b733a393a227072696e742e637373223b733a32343a227468656d65732f6761726c616e642f7072696e742e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_demo', 0x613a313a7b693a303b733a373a226761726c616e64223b7d, '', 31, 5, 0, '', 'admin/structure/block/demo/garland', 'Garland', 't', '', '_block_custom_theme', 'a:1:{i:0;s:7:"garland";}', 0, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/demo/seven', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32333a227468656d65732f736576656e2f736576656e2e696e666f223b733a343a226e616d65223b733a353a22736576656e223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2231223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31383a7b733a343a226e616d65223b733a353a22536576656e223b733a31313a226465736372697074696f6e223b733a36353a22412073696d706c65206f6e652d636f6c756d6e2c207461626c656c6573732c20666c7569642077696474682061646d696e697374726174696f6e207468656d652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a313a7b733a363a2273637265656e223b613a323a7b733a393a2272657365742e637373223b733a32323a227468656d65732f736576656e2f72657365742e637373223b733a393a227374796c652e637373223b733a32323a227468656d65732f736576656e2f7374796c652e637373223b7d7d733a383a2273657474696e6773223b613a313a7b733a32303a2273686f72746375745f6d6f64756c655f6c696e6b223b733a313a2231223b7d733a373a22726567696f6e73223b613a383a7b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31333a22736964656261725f6669727374223b733a31333a2246697273742073696465626172223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a31343a22726567696f6e735f68696464656e223b613a333a7b693a303b733a31333a22736964656261725f6669727374223b693a313b733a383a22706167655f746f70223b693a323b733a31313a22706167655f626f74746f6d223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32373a227468656d65732f736576656e2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a313a7b733a363a2273637265656e223b613a323a7b733a393a2272657365742e637373223b733a32323a227468656d65732f736576656e2f72657365742e637373223b733a393a227374796c652e637373223b733a32323a227468656d65732f736576656e2f7374796c652e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_demo', 0x613a313a7b693a303b733a353a22736576656e223b7d, '', 31, 5, 0, '', 'admin/structure/block/demo/seven', 'Seven', 't', '', '_block_custom_theme', 'a:1:{i:0;s:5:"seven";}', 0, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/demo/simplecorp', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a34333a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f73696d706c65636f72702e696e666f223b733a343a226e616d65223b733a31303a2273696d706c65636f7270223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2231223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31353a7b733a343a226e616d65223b733a31303a2253696d706c65436f7270223b733a31313a226465736372697074696f6e223b733a3335323a224120666c657869626c6520726573706f6e73697665207468656d652077697468206d616e7920726567696f6e7320737570706f72746564206279203c6120687265663d22687474703a2f2f7777772e6d6f72657468616e7468656d65732e636f6d2f22207461726765743d225f626c616e6b223e4d6f7265207468616e20286a75737429205468656d65733c2f613e2e20496620796f75206c696b652074686973207468656d652c20776520656e636f757261676520796f7520746f2074727920616c736f206f7572206f74686572203c6120687265663d22687474703a2f2f7777772e6d6f72657468616e7468656d65732e636f6d22207461726765743d225f626c616e6b223e5072656d69756d3c2f613e20616e64203c6120687265663d22687474703a2f2f64727570616c697a696e672e636f6d22207461726765743d225f626c616e6b223e467265653c2f613e2044727570616c207468656d65732e223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a343a7b733a333a22616c6c223b613a343a7b733a31363a226373732f6d61696e2d6373732e637373223b733a34343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6d61696e2d6373732e637373223b733a31373a226373732f6e6f726d616c697a652e637373223b733a34353a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6e6f726d616c697a652e637373223b733a32363a226373732f706c7567696e732f666c6578736c696465722e637373223b733a35343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f706c7567696e732f666c6578736c696465722e637373223b733a31333a226373732f6c6f63616c2e637373223b733a34313a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6c6f63616c2e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2037363870782920616e6420286d61782d77696474683a20393539707829223b613a313a7b733a31313a226373732f3736382e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3736382e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2034383070782920616e6420286d61782d77696474683a20373637707829223b613a313a7b733a31313a226373732f3438302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3438302e637373223b7d733a32363a22616c6c20616e6420286d61782d77696474683a20343739707829223b613a313a7b733a31313a226373732f3332302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3332302e637373223b7d7d733a373a22726567696f6e73223b613a32303a7b733a363a22686561646572223b733a363a22486561646572223b733a31303a226e617669676174696f6e223b733a31303a224e617669676174696f6e223b733a31313a22746f705f636f6e74656e74223b733a31313a22546f7020436f6e74656e74223b733a363a2262616e6e6572223b733a363a2242616e6e6572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a31333a22736964656261725f6669727374223b733a31333a2253696465626172204669727374223b733a31343a22736964656261725f7365636f6e64223b733a31343a2253696465626172205365636f6e64223b733a31343a22626f74746f6d5f636f6e74656e74223b733a31343a22426f74746f6d20436f6e74656e74223b733a31323a22666f6f7465725f6669727374223b733a31323a22466f6f746572204669727374223b733a31333a22666f6f7465725f7365636f6e64223b733a31333a22466f6f746572205365636f6e64223b733a31323a22666f6f7465725f7468697264223b733a31323a22466f6f746572205468697264223b733a31333a22666f6f7465725f666f75727468223b733a31333a22466f6f74657220466f75727468223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a2273657474696e6773223b613a33343a7b733a31383a2262726561646372756d625f646973706c6179223b733a313a2231223b733a32303a2262726561646372756d625f736570617261746f72223b733a313a222f223b733a31393a226d61696e5f6d656e755f637573746f6d5f6a73223b733a313a2231223b733a31373a226865616465725f746f6f6c7469705f6a73223b733a313a2231223b733a32303a22736f6369616c5f69636f6e735f646973706c6179223b733a313a2231223b733a31393a22686967686c6967687465645f646973706c6179223b733a313a2231223b733a31363a226361726f7573656c5f646973706c6179223b733a313a2231223b733a31313a226361726f7573656c5f6a73223b733a313a2231223b733a32303a226361726f7573656c5f6566666563745f74696d65223b733a333a22302e36223b733a31353a226361726f7573656c5f656666656374223b733a31313a22656173654f757443697263223b733a31373a22736c69646573686f775f646973706c6179223b733a313a2231223b733a31323a22736c69646573686f775f6a73223b733a313a2231223b733a31363a22736c69646573686f775f656666656374223b733a353a22736c696465223b733a32313a22736c69646573686f775f6566666563745f74696d65223b733a313a2235223b733a31363a22736c69646573686f775f72616e646f6d223b733a313a2230223b733a31383a22736c69646573686f775f636f6e74726f6c73223b733a313a2231223b733a31353a22736c69646573686f775f7061757365223b733a313a2231223b733a31353a22736c69646573686f775f746f756368223b733a313a2231223b733a31353a22726573706f6e736976655f6d657461223b733a313a2231223b733a31383a22726573706f6e736976655f726573706f6e64223b733a313a2230223b733a31323a22627574746f6e5f636f6c6f72223b733a31303a22737465656c5f626c7565223b733a31313a227468656d655f636f6c6f72223b733a373a2264656661756c74223b733a31343a22636f6c756d6e735f656e61626c65223b733a313a2230223b733a31323a226c697374735f656e61626c65223b733a313a2230223b733a31323a22626f7865735f656e61626c65223b733a313a2230223b733a31323a22717569636b73616e645f6a73223b733a313a2230223b733a31343a2270726574747970686f746f5f6a73223b733a313a2231223b733a31373a2270726574747970686f746f5f7468656d65223b733a31303a2270705f64656661756c74223b733a32343a2270726574747970686f746f5f736f6369616c5f746f6f6c73223b733a313a2231223b733a31373a226a7477656574616e7977686572655f6a73223b733a313a2230223b733a31373a226a7477656574616e7977686572655f6964223b733a31343a226d6f72657468616e7468656d6573223b733a32313a22726573706f6e736976655f6d656e755f7374617465223b733a313a2231223b733a32373a22726573706f6e736976655f6d656e755f7377697463687769647468223b733a333a22393630223b733a32393a22726573706f6e736976655f6d656e755f746f706f7074696f6e74657874223b733a31333a2253656c65637420612070616765223b7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a34323a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a343a7b733a333a22616c6c223b613a343a7b733a31363a226373732f6d61696e2d6373732e637373223b733a34343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6d61696e2d6373732e637373223b733a31373a226373732f6e6f726d616c697a652e637373223b733a34353a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6e6f726d616c697a652e637373223b733a32363a226373732f706c7567696e732f666c6578736c696465722e637373223b733a35343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f706c7567696e732f666c6578736c696465722e637373223b733a31333a226373732f6c6f63616c2e637373223b733a34313a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6c6f63616c2e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2037363870782920616e6420286d61782d77696474683a20393539707829223b613a313a7b733a31313a226373732f3736382e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3736382e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2034383070782920616e6420286d61782d77696474683a20373637707829223b613a313a7b733a31313a226373732f3438302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3438302e637373223b7d733a32363a22616c6c20616e6420286d61782d77696474683a20343739707829223b613a313a7b733a31313a226373732f3332302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3332302e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_demo', 0x613a313a7b693a303b733a31303a2273696d706c65636f7270223b7d, '', 31, 5, 0, '', 'admin/structure/block/demo/simplecorp', 'SimpleCorp', 't', '', '_block_custom_theme', 'a:1:{i:0;s:10:"simplecorp";}', 0, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/demo/stark', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32333a227468656d65732f737461726b2f737461726b2e696e666f223b733a343a226e616d65223b733a353a22737461726b223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2230223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31373a7b733a343a226e616d65223b733a353a22537461726b223b733a31313a226465736372697074696f6e223b733a3230383a2254686973207468656d652064656d6f6e737472617465732044727570616c27732064656661756c742048544d4c206d61726b757020616e6420435353207374796c65732e20546f206c6561726e20686f7720746f206275696c6420796f7572206f776e207468656d6520616e64206f766572726964652044727570616c27732064656661756c7420636f64652c2073656520746865203c6120687265663d22687474703a2f2f64727570616c2e6f72672f7468656d652d6775696465223e5468656d696e672047756964653c2f613e2e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31303a226c61796f75742e637373223b733a32333a227468656d65732f737461726b2f6c61796f75742e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a373a22726567696f6e73223b613a31323a7b733a31333a22736964656261725f6669727374223b733a31323a224c6566742073696465626172223b733a31343a22736964656261725f7365636f6e64223b733a31333a2252696768742073696465626172223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a363a22686561646572223b733a363a22486561646572223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32373a227468656d65732f737461726b2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31303a226c61796f75742e637373223b733a32333a227468656d65732f737461726b2f6c61796f75742e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_demo', 0x613a313a7b693a303b733a353a22737461726b223b7d, '', 31, 5, 0, '', 'admin/structure/block/demo/stark', 'Stark', 't', '', '_block_custom_theme', 'a:1:{i:0;s:5:"stark";}', 0, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/list/bartik', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32353a227468656d65732f62617274696b2f62617274696b2e696e666f223b733a343a226e616d65223b733a363a2262617274696b223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2231223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31383a7b733a343a226e616d65223b733a363a2242617274696b223b733a31313a226465736372697074696f6e223b733a34383a224120666c657869626c652c207265636f6c6f7261626c65207468656d652077697468206d616e7920726567696f6e732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a333a7b733a31343a226373732f6c61796f75742e637373223b733a32383a227468656d65732f62617274696b2f6373732f6c61796f75742e637373223b733a31333a226373732f7374796c652e637373223b733a32373a227468656d65732f62617274696b2f6373732f7374796c652e637373223b733a31343a226373732f636f6c6f72732e637373223b733a32383a227468656d65732f62617274696b2f6373732f636f6c6f72732e637373223b7d733a353a227072696e74223b613a313a7b733a31333a226373732f7072696e742e637373223b733a32373a227468656d65732f62617274696b2f6373732f7072696e742e637373223b7d7d733a373a22726567696f6e73223b613a32303a7b733a363a22686561646572223b733a363a22486561646572223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a383a226665617475726564223b733a383a224665617475726564223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a31333a22736964656261725f6669727374223b733a31333a2253696465626172206669727374223b733a31343a22736964656261725f7365636f6e64223b733a31343a2253696465626172207365636f6e64223b733a31343a2274726970747963685f6669727374223b733a31343a225472697074796368206669727374223b733a31353a2274726970747963685f6d6964646c65223b733a31353a225472697074796368206d6964646c65223b733a31333a2274726970747963685f6c617374223b733a31333a225472697074796368206c617374223b733a31383a22666f6f7465725f6669727374636f6c756d6e223b733a31393a22466f6f74657220666972737420636f6c756d6e223b733a31393a22666f6f7465725f7365636f6e64636f6c756d6e223b733a32303a22466f6f746572207365636f6e6420636f6c756d6e223b733a31383a22666f6f7465725f7468697264636f6c756d6e223b733a31393a22466f6f74657220746869726420636f6c756d6e223b733a31393a22666f6f7465725f666f75727468636f6c756d6e223b733a32303a22466f6f74657220666f7572746820636f6c756d6e223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a2273657474696e6773223b613a313a7b733a32303a2273686f72746375745f6d6f64756c655f6c696e6b223b733a313a2230223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32383a227468656d65732f62617274696b2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a333a7b733a31343a226373732f6c61796f75742e637373223b733a32383a227468656d65732f62617274696b2f6373732f6c61796f75742e637373223b733a31333a226373732f7374796c652e637373223b733a32373a227468656d65732f62617274696b2f6373732f7374796c652e637373223b733a31343a226373732f636f6c6f72732e637373223b733a32383a227468656d65732f62617274696b2f6373732f636f6c6f72732e637373223b7d733a353a227072696e74223b613a313a7b733a31333a226373732f7072696e742e637373223b733a32373a227468656d65732f62617274696b2f6373732f7072696e742e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_display', 0x613a313a7b693a303b733a363a2262617274696b223b7d, '', 31, 5, 1, 'admin/structure/block', 'admin/structure/block', 'Bartik', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/list/bartik/add', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32303a22626c6f636b5f6164645f626c6f636b5f666f726d223b7d, '', 63, 6, 1, 'admin/structure/block/list/bartik', 'admin/structure/block', 'Add block', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/list/garland', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32373a227468656d65732f6761726c616e642f6761726c616e642e696e666f223b733a343a226e616d65223b733a373a226761726c616e64223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2230223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31383a7b733a343a226e616d65223b733a373a224761726c616e64223b733a31313a226465736372697074696f6e223b733a3131313a2241206d756c74692d636f6c756d6e207468656d652077686963682063616e20626520636f6e6669677572656420746f206d6f6469667920636f6c6f727320616e6420737769746368206265747765656e20666978656420616e6420666c756964207769647468206c61796f7574732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a313a7b733a393a227374796c652e637373223b733a32343a227468656d65732f6761726c616e642f7374796c652e637373223b7d733a353a227072696e74223b613a313a7b733a393a227072696e742e637373223b733a32343a227468656d65732f6761726c616e642f7072696e742e637373223b7d7d733a383a2273657474696e6773223b613a313a7b733a31333a226761726c616e645f7769647468223b733a353a22666c756964223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a373a22726567696f6e73223b613a31323a7b733a31333a22736964656261725f6669727374223b733a31323a224c6566742073696465626172223b733a31343a22736964656261725f7365636f6e64223b733a31333a2252696768742073696465626172223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a363a22686561646572223b733a363a22486561646572223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32393a227468656d65732f6761726c616e642f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a313a7b733a393a227374796c652e637373223b733a32343a227468656d65732f6761726c616e642f7374796c652e637373223b7d733a353a227072696e74223b613a313a7b733a393a227072696e742e637373223b733a32343a227468656d65732f6761726c616e642f7072696e742e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_display', 0x613a313a7b693a303b733a373a226761726c616e64223b7d, '', 31, 5, 1, 'admin/structure/block', 'admin/structure/block', 'Garland', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/list/garland/add', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32303a22626c6f636b5f6164645f626c6f636b5f666f726d223b7d, '', 63, 6, 1, 'admin/structure/block/list/garland', 'admin/structure/block', 'Add block', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/list/seven', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32333a227468656d65732f736576656e2f736576656e2e696e666f223b733a343a226e616d65223b733a353a22736576656e223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2231223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31383a7b733a343a226e616d65223b733a353a22536576656e223b733a31313a226465736372697074696f6e223b733a36353a22412073696d706c65206f6e652d636f6c756d6e2c207461626c656c6573732c20666c7569642077696474682061646d696e697374726174696f6e207468656d652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a313a7b733a363a2273637265656e223b613a323a7b733a393a2272657365742e637373223b733a32323a227468656d65732f736576656e2f72657365742e637373223b733a393a227374796c652e637373223b733a32323a227468656d65732f736576656e2f7374796c652e637373223b7d7d733a383a2273657474696e6773223b613a313a7b733a32303a2273686f72746375745f6d6f64756c655f6c696e6b223b733a313a2231223b7d733a373a22726567696f6e73223b613a383a7b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31333a22736964656261725f6669727374223b733a31333a2246697273742073696465626172223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a31343a22726567696f6e735f68696464656e223b613a333a7b693a303b733a31333a22736964656261725f6669727374223b693a313b733a383a22706167655f746f70223b693a323b733a31313a22706167655f626f74746f6d223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32373a227468656d65732f736576656e2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a313a7b733a363a2273637265656e223b613a323a7b733a393a2272657365742e637373223b733a32323a227468656d65732f736576656e2f72657365742e637373223b733a393a227374796c652e637373223b733a32323a227468656d65732f736576656e2f7374796c652e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_display', 0x613a313a7b693a303b733a353a22736576656e223b7d, '', 31, 5, 1, 'admin/structure/block', 'admin/structure/block', 'Seven', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/list/seven/add', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32303a22626c6f636b5f6164645f626c6f636b5f666f726d223b7d, '', 63, 6, 1, 'admin/structure/block/list/seven', 'admin/structure/block', 'Add block', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/block/block.admin.inc'); -INSERT INTO `menu_router` (`path`, `load_functions`, `to_arg_functions`, `access_callback`, `access_arguments`, `page_callback`, `page_arguments`, `delivery_callback`, `fit`, `number_parts`, `context`, `tab_parent`, `tab_root`, `title`, `title_callback`, `title_arguments`, `theme_callback`, `theme_arguments`, `type`, `description`, `position`, `weight`, `include_file`) VALUES -('admin/structure/block/list/simplecorp', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a34333a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f73696d706c65636f72702e696e666f223b733a343a226e616d65223b733a31303a2273696d706c65636f7270223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2231223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31353a7b733a343a226e616d65223b733a31303a2253696d706c65436f7270223b733a31313a226465736372697074696f6e223b733a3335323a224120666c657869626c6520726573706f6e73697665207468656d652077697468206d616e7920726567696f6e7320737570706f72746564206279203c6120687265663d22687474703a2f2f7777772e6d6f72657468616e7468656d65732e636f6d2f22207461726765743d225f626c616e6b223e4d6f7265207468616e20286a75737429205468656d65733c2f613e2e20496620796f75206c696b652074686973207468656d652c20776520656e636f757261676520796f7520746f2074727920616c736f206f7572206f74686572203c6120687265663d22687474703a2f2f7777772e6d6f72657468616e7468656d65732e636f6d22207461726765743d225f626c616e6b223e5072656d69756d3c2f613e20616e64203c6120687265663d22687474703a2f2f64727570616c697a696e672e636f6d22207461726765743d225f626c616e6b223e467265653c2f613e2044727570616c207468656d65732e223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a343a7b733a333a22616c6c223b613a343a7b733a31363a226373732f6d61696e2d6373732e637373223b733a34343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6d61696e2d6373732e637373223b733a31373a226373732f6e6f726d616c697a652e637373223b733a34353a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6e6f726d616c697a652e637373223b733a32363a226373732f706c7567696e732f666c6578736c696465722e637373223b733a35343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f706c7567696e732f666c6578736c696465722e637373223b733a31333a226373732f6c6f63616c2e637373223b733a34313a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6c6f63616c2e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2037363870782920616e6420286d61782d77696474683a20393539707829223b613a313a7b733a31313a226373732f3736382e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3736382e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2034383070782920616e6420286d61782d77696474683a20373637707829223b613a313a7b733a31313a226373732f3438302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3438302e637373223b7d733a32363a22616c6c20616e6420286d61782d77696474683a20343739707829223b613a313a7b733a31313a226373732f3332302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3332302e637373223b7d7d733a373a22726567696f6e73223b613a32303a7b733a363a22686561646572223b733a363a22486561646572223b733a31303a226e617669676174696f6e223b733a31303a224e617669676174696f6e223b733a31313a22746f705f636f6e74656e74223b733a31313a22546f7020436f6e74656e74223b733a363a2262616e6e6572223b733a363a2242616e6e6572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a31333a22736964656261725f6669727374223b733a31333a2253696465626172204669727374223b733a31343a22736964656261725f7365636f6e64223b733a31343a2253696465626172205365636f6e64223b733a31343a22626f74746f6d5f636f6e74656e74223b733a31343a22426f74746f6d20436f6e74656e74223b733a31323a22666f6f7465725f6669727374223b733a31323a22466f6f746572204669727374223b733a31333a22666f6f7465725f7365636f6e64223b733a31333a22466f6f746572205365636f6e64223b733a31323a22666f6f7465725f7468697264223b733a31323a22466f6f746572205468697264223b733a31333a22666f6f7465725f666f75727468223b733a31333a22466f6f74657220466f75727468223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a2273657474696e6773223b613a33343a7b733a31383a2262726561646372756d625f646973706c6179223b733a313a2231223b733a32303a2262726561646372756d625f736570617261746f72223b733a313a222f223b733a31393a226d61696e5f6d656e755f637573746f6d5f6a73223b733a313a2231223b733a31373a226865616465725f746f6f6c7469705f6a73223b733a313a2231223b733a32303a22736f6369616c5f69636f6e735f646973706c6179223b733a313a2231223b733a31393a22686967686c6967687465645f646973706c6179223b733a313a2231223b733a31363a226361726f7573656c5f646973706c6179223b733a313a2231223b733a31313a226361726f7573656c5f6a73223b733a313a2231223b733a32303a226361726f7573656c5f6566666563745f74696d65223b733a333a22302e36223b733a31353a226361726f7573656c5f656666656374223b733a31313a22656173654f757443697263223b733a31373a22736c69646573686f775f646973706c6179223b733a313a2231223b733a31323a22736c69646573686f775f6a73223b733a313a2231223b733a31363a22736c69646573686f775f656666656374223b733a353a22736c696465223b733a32313a22736c69646573686f775f6566666563745f74696d65223b733a313a2235223b733a31363a22736c69646573686f775f72616e646f6d223b733a313a2230223b733a31383a22736c69646573686f775f636f6e74726f6c73223b733a313a2231223b733a31353a22736c69646573686f775f7061757365223b733a313a2231223b733a31353a22736c69646573686f775f746f756368223b733a313a2231223b733a31353a22726573706f6e736976655f6d657461223b733a313a2231223b733a31383a22726573706f6e736976655f726573706f6e64223b733a313a2230223b733a31323a22627574746f6e5f636f6c6f72223b733a31303a22737465656c5f626c7565223b733a31313a227468656d655f636f6c6f72223b733a373a2264656661756c74223b733a31343a22636f6c756d6e735f656e61626c65223b733a313a2230223b733a31323a226c697374735f656e61626c65223b733a313a2230223b733a31323a22626f7865735f656e61626c65223b733a313a2230223b733a31323a22717569636b73616e645f6a73223b733a313a2230223b733a31343a2270726574747970686f746f5f6a73223b733a313a2231223b733a31373a2270726574747970686f746f5f7468656d65223b733a31303a2270705f64656661756c74223b733a32343a2270726574747970686f746f5f736f6369616c5f746f6f6c73223b733a313a2231223b733a31373a226a7477656574616e7977686572655f6a73223b733a313a2230223b733a31373a226a7477656574616e7977686572655f6964223b733a31343a226d6f72657468616e7468656d6573223b733a32313a22726573706f6e736976655f6d656e755f7374617465223b733a313a2231223b733a32373a22726573706f6e736976655f6d656e755f7377697463687769647468223b733a333a22393630223b733a32393a22726573706f6e736976655f6d656e755f746f706f7074696f6e74657874223b733a31333a2253656c65637420612070616765223b7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a34323a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a343a7b733a333a22616c6c223b613a343a7b733a31363a226373732f6d61696e2d6373732e637373223b733a34343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6d61696e2d6373732e637373223b733a31373a226373732f6e6f726d616c697a652e637373223b733a34353a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6e6f726d616c697a652e637373223b733a32363a226373732f706c7567696e732f666c6578736c696465722e637373223b733a35343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f706c7567696e732f666c6578736c696465722e637373223b733a31333a226373732f6c6f63616c2e637373223b733a34313a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6c6f63616c2e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2037363870782920616e6420286d61782d77696474683a20393539707829223b613a313a7b733a31313a226373732f3736382e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3736382e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2034383070782920616e6420286d61782d77696474683a20373637707829223b613a313a7b733a31313a226373732f3438302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3438302e637373223b7d733a32363a22616c6c20616e6420286d61782d77696474683a20343739707829223b613a313a7b733a31313a226373732f3332302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3332302e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_display', 0x613a313a7b693a303b733a31303a2273696d706c65636f7270223b7d, '', 31, 5, 1, 'admin/structure/block', 'admin/structure/block', 'SimpleCorp', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/block/block.admin.inc'), -('admin/structure/block/list/stark', '', '', '_block_themes_access', 0x613a313a7b693a303b4f3a383a22737464436c617373223a31323a7b733a383a2266696c656e616d65223b733a32333a227468656d65732f737461726b2f737461726b2e696e666f223b733a343a226e616d65223b733a353a22737461726b223b733a343a2274797065223b733a353a227468656d65223b733a353a226f776e6572223b733a34353a227468656d65732f656e67696e65732f70687074656d706c6174652f70687074656d706c6174652e656e67696e65223b733a363a22737461747573223b733a313a2230223b733a393a22626f6f747374726170223b733a313a2230223b733a31343a22736368656d615f76657273696f6e223b733a323a222d31223b733a363a22776569676874223b733a313a2230223b733a343a22696e666f223b613a31373a7b733a343a226e616d65223b733a353a22537461726b223b733a31313a226465736372697074696f6e223b733a3230383a2254686973207468656d652064656d6f6e737472617465732044727570616c27732064656661756c742048544d4c206d61726b757020616e6420435353207374796c65732e20546f206c6561726e20686f7720746f206275696c6420796f7572206f776e207468656d6520616e64206f766572726964652044727570616c27732064656661756c7420636f64652c2073656520746865203c6120687265663d22687474703a2f2f64727570616c2e6f72672f7468656d652d6775696465223e5468656d696e672047756964653c2f613e2e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31303a226c61796f75742e637373223b733a32333a227468656d65732f737461726b2f6c61796f75742e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a373a22726567696f6e73223b613a31323a7b733a31333a22736964656261725f6669727374223b733a31323a224c6566742073696465626172223b733a31343a22736964656261725f7365636f6e64223b733a31333a2252696768742073696465626172223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a363a22686561646572223b733a363a22486561646572223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32373a227468656d65732f737461726b2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d733a363a22707265666978223b733a31313a2270687074656d706c617465223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31303a226c61796f75742e637373223b733a32333a227468656d65732f737461726b2f6c61796f75742e637373223b7d7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b7d7d, 'block_admin_display', 0x613a313a7b693a303b733a353a22737461726b223b7d, '', 31, 5, 1, 'admin/structure/block', 'admin/structure/block', 'Stark', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/list/stark/add', '', '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32303a22626c6f636b5f6164645f626c6f636b5f666f726d223b7d, '', 63, 6, 1, 'admin/structure/block/list/stark', 'admin/structure/block', 'Add block', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/manage/%/%', 0x613a323a7b693a343b4e3b693a353b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a32313a22626c6f636b5f61646d696e5f636f6e666967757265223b693a313b693a343b693a323b693a353b7d, '', 60, 6, 0, '', 'admin/structure/block/manage/%/%', 'Configure block', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/manage/%/%/configure', 0x613a323a7b693a343b4e3b693a353b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a32313a22626c6f636b5f61646d696e5f636f6e666967757265223b693a313b693a343b693a323b693a353b7d, '', 121, 7, 2, 'admin/structure/block/manage/%/%', 'admin/structure/block/manage/%/%', 'Configure block', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/block/manage/%/%/delete', 0x613a323a7b693a343b4e3b693a353b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31373a2261646d696e697374657220626c6f636b73223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a32353a22626c6f636b5f637573746f6d5f626c6f636b5f64656c657465223b693a313b693a343b693a323b693a353b7d, '', 121, 7, 0, 'admin/structure/block/manage/%/%', 'admin/structure/block/manage/%/%', 'Delete block', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/block/block.admin.inc'), -('admin/structure/contact', '', '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e7461637420666f726d73223b7d, 'contact_category_list', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/structure/contact', 'Contact form', 't', '', '', 'a:0:{}', 6, 'Create a system contact form and set up categories for the form to use.', '', 0, 'modules/contact/contact.admin.inc'), -('admin/structure/contact/add', '', '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e7461637420666f726d73223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32363a22636f6e746163745f63617465676f72795f656469745f666f726d223b7d, '', 15, 4, 1, 'admin/structure/contact', 'admin/structure/contact', 'Add category', 't', '', '', 'a:0:{}', 388, '', '', 1, 'modules/contact/contact.admin.inc'), -('admin/structure/contact/delete/%', 0x613a313a7b693a343b733a31323a22636f6e746163745f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e7461637420666f726d73223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32383a22636f6e746163745f63617465676f72795f64656c6574655f666f726d223b693a313b693a343b7d, '', 30, 5, 0, '', 'admin/structure/contact/delete/%', 'Delete contact', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/contact/contact.admin.inc'), -('admin/structure/contact/edit/%', 0x613a313a7b693a343b733a31323a22636f6e746163745f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e7461637420666f726d73223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32363a22636f6e746163745f63617465676f72795f656469745f666f726d223b693a313b693a343b7d, '', 30, 5, 0, '', 'admin/structure/contact/edit/%', 'Edit contact category', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/contact/contact.admin.inc'), -('admin/structure/menu', '', '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'menu_overview_page', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/structure/menu', 'Menus', 't', '', '', 'a:0:{}', 6, 'Add new menus to your site, edit existing menus, and rename and reorganize menu links.', '', 0, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/add', '', '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31343a226d656e755f656469745f6d656e75223b693a313b733a333a22616464223b7d, '', 15, 4, 1, 'admin/structure/menu', 'admin/structure/menu', 'Add menu', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/item/%/delete', 0x613a313a7b693a343b733a31343a226d656e755f6c696e6b5f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'menu_item_delete_page', 0x613a313a7b693a303b693a343b7d, '', 61, 6, 0, '', 'admin/structure/menu/item/%/delete', 'Delete menu link', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/item/%/edit', 0x613a313a7b693a343b733a31343a226d656e755f6c696e6b5f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a31343a226d656e755f656469745f6974656d223b693a313b733a343a2265646974223b693a323b693a343b693a333b4e3b7d, '', 61, 6, 0, '', 'admin/structure/menu/item/%/edit', 'Edit menu link', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/item/%/reset', 0x613a313a7b693a343b733a31343a226d656e755f6c696e6b5f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32333a226d656e755f72657365745f6974656d5f636f6e6669726d223b693a313b693a343b7d, '', 61, 6, 0, '', 'admin/structure/menu/item/%/reset', 'Reset menu link', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/list', '', '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'menu_overview_page', 0x613a303a7b7d, '', 15, 4, 1, 'admin/structure/menu', 'admin/structure/menu', 'List menus', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/manage/%', 0x613a313a7b693a343b733a393a226d656e755f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31383a226d656e755f6f766572766965775f666f726d223b693a313b693a343b7d, '', 30, 5, 0, '', 'admin/structure/menu/manage/%', 'Customize menu', 'menu_overview_title', 'a:1:{i:0;i:4;}', '', 'a:0:{}', 6, '', '', 0, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/manage/%/add', 0x613a313a7b693a343b733a393a226d656e755f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a31343a226d656e755f656469745f6974656d223b693a313b733a333a22616464223b693a323b4e3b693a333b693a343b7d, '', 61, 6, 1, 'admin/structure/menu/manage/%', 'admin/structure/menu/manage/%', 'Add link', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/manage/%/delete', 0x613a313a7b693a343b733a393a226d656e755f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'menu_delete_menu_page', 0x613a313a7b693a303b693a343b7d, '', 61, 6, 0, '', 'admin/structure/menu/manage/%/delete', 'Delete menu', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/manage/%/edit', 0x613a313a7b693a343b733a393a226d656e755f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a31343a226d656e755f656469745f6d656e75223b693a313b733a343a2265646974223b693a323b693a343b7d, '', 61, 6, 3, 'admin/structure/menu/manage/%', 'admin/structure/menu/manage/%', 'Edit menu', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/manage/%/list', 0x613a313a7b693a343b733a393a226d656e755f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31383a226d656e755f6f766572766965775f666f726d223b693a313b693a343b7d, '', 61, 6, 3, 'admin/structure/menu/manage/%', 'admin/structure/menu/manage/%', 'List links', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/menu/menu.admin.inc'), -('admin/structure/menu/parents', '', '', 'user_access', 0x613a313a7b693a303b623a313b7d, 'menu_parent_options_js', 0x613a303a7b7d, '', 15, 4, 0, '', 'admin/structure/menu/parents', 'Parent menu items', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('admin/structure/menu/settings', '', '', 'user_access', 0x613a313a7b693a303b733a31353a2261646d696e6973746572206d656e75223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31343a226d656e755f636f6e666967757265223b7d, '', 15, 4, 1, 'admin/structure/menu', 'admin/structure/menu', 'Settings', 't', '', '', 'a:0:{}', 132, '', '', 5, 'modules/menu/menu.admin.inc'), -('admin/structure/taxonomy', '', '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a33303a227461786f6e6f6d795f6f766572766965775f766f636162756c6172696573223b7d, '', 7, 3, 0, '', 'admin/structure/taxonomy', 'Taxonomy', 't', '', '', 'a:0:{}', 6, 'Manage tagging, categorization, and classification of your content.', '', 0, 'modules/taxonomy/taxonomy.admin.inc'), -('admin/structure/taxonomy/%', 0x613a313a7b693a333b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32333a227461786f6e6f6d795f6f766572766965775f7465726d73223b693a313b693a333b7d, '', 14, 4, 0, '', 'admin/structure/taxonomy/%', '', 'entity_label', 'a:2:{i:0;s:19:"taxonomy_vocabulary";i:1;i:3;}', '', 'a:0:{}', 6, '', '', 0, 'modules/taxonomy/taxonomy.admin.inc'), -('admin/structure/taxonomy/%/add', 0x613a313a7b693a333b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a31383a227461786f6e6f6d795f666f726d5f7465726d223b693a313b613a303a7b7d693a323b693a333b7d, '', 29, 5, 1, 'admin/structure/taxonomy/%', 'admin/structure/taxonomy/%', 'Add term', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/taxonomy/taxonomy.admin.inc'), -('admin/structure/taxonomy/%/display', 0x613a313a7b693a333b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a31333a227461786f6e6f6d795f7465726d223b693a323b693a333b693a333b733a373a2264656661756c74223b7d, '', 29, 5, 1, 'admin/structure/taxonomy/%', 'admin/structure/taxonomy/%', 'Manage display', 't', '', '', 'a:0:{}', 132, '', '', 2, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/taxonomy/%/display/default', 0x613a313a7b693a333b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a373a2264656661756c74223b693a333b733a31313a22757365725f616363657373223b693a343b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a31333a227461786f6e6f6d795f7465726d223b693a323b693a333b693a333b733a373a2264656661756c74223b7d, '', 59, 6, 1, 'admin/structure/taxonomy/%/display', 'admin/structure/taxonomy/%', 'Default', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/taxonomy/%/display/full', 0x613a313a7b693a333b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a343a2266756c6c223b693a333b733a31313a22757365725f616363657373223b693a343b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a31333a227461786f6e6f6d795f7465726d223b693a323b693a333b693a333b733a343a2266756c6c223b7d, '', 59, 6, 1, 'admin/structure/taxonomy/%/display', 'admin/structure/taxonomy/%', 'Taxonomy term page', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/taxonomy/%/edit', 0x613a313a7b693a333b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a227461786f6e6f6d795f666f726d5f766f636162756c617279223b693a313b693a333b7d, '', 29, 5, 1, 'admin/structure/taxonomy/%', 'admin/structure/taxonomy/%', 'Edit', 't', '', '', 'a:0:{}', 132, '', '', -10, 'modules/taxonomy/taxonomy.admin.inc'), -('admin/structure/taxonomy/%/fields', 0x613a313a7b693a333b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a32383a226669656c645f75695f6669656c645f6f766572766965775f666f726d223b693a313b733a31333a227461786f6e6f6d795f7465726d223b693a323b693a333b7d, '', 29, 5, 1, 'admin/structure/taxonomy/%', 'admin/structure/taxonomy/%', 'Manage fields', 't', '', '', 'a:0:{}', 132, '', '', 1, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/taxonomy/%/fields/%', 0x613a323a7b693a333b613a313a7b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a226669656c645f75695f6669656c645f656469745f666f726d223b693a313b693a353b7d, '', 58, 6, 0, '', 'admin/structure/taxonomy/%/fields/%', '', 'field_ui_menu_title', 'a:1:{i:0;i:5;}', '', 'a:0:{}', 6, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/taxonomy/%/fields/%/delete', 0x613a323a7b693a333b613a313a7b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32363a226669656c645f75695f6669656c645f64656c6574655f666f726d223b693a313b693a353b7d, '', 117, 7, 1, 'admin/structure/taxonomy/%/fields/%', 'admin/structure/taxonomy/%/fields/%', 'Delete', 't', '', '', 'a:0:{}', 132, '', '', 10, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/taxonomy/%/fields/%/edit', 0x613a323a7b693a333b613a313a7b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a226669656c645f75695f6669656c645f656469745f666f726d223b693a313b693a353b7d, '', 117, 7, 1, 'admin/structure/taxonomy/%/fields/%', 'admin/structure/taxonomy/%/fields/%', 'Edit', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/taxonomy/%/fields/%/field-settings', 0x613a323a7b693a333b613a313a7b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32383a226669656c645f75695f6669656c645f73657474696e67735f666f726d223b693a313b693a353b7d, '', 117, 7, 1, 'admin/structure/taxonomy/%/fields/%', 'admin/structure/taxonomy/%/fields/%', 'Field settings', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/taxonomy/%/fields/%/widget-type', 0x613a323a7b693a333b613a313a7b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d693a353b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a31333a227461786f6e6f6d795f7465726d223b693a313b693a333b693a323b733a313a2233223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32353a226669656c645f75695f7769646765745f747970655f666f726d223b693a313b693a353b7d, '', 117, 7, 1, 'admin/structure/taxonomy/%/fields/%', 'admin/structure/taxonomy/%/fields/%', 'Widget type', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/taxonomy/%/list', 0x613a313a7b693a333b733a33373a227461786f6e6f6d795f766f636162756c6172795f6d616368696e655f6e616d655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32333a227461786f6e6f6d795f6f766572766965775f7465726d73223b693a313b693a333b7d, '', 29, 5, 1, 'admin/structure/taxonomy/%', 'admin/structure/taxonomy/%', 'List', 't', '', '', 'a:0:{}', 140, '', '', -20, 'modules/taxonomy/taxonomy.admin.inc'), -('admin/structure/taxonomy/add', '', '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a32343a227461786f6e6f6d795f666f726d5f766f636162756c617279223b7d, '', 15, 4, 1, 'admin/structure/taxonomy', 'admin/structure/taxonomy', 'Add vocabulary', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/taxonomy/taxonomy.admin.inc'), -('admin/structure/taxonomy/list', '', '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e6973746572207461786f6e6f6d79223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a33303a227461786f6e6f6d795f6f766572766965775f766f636162756c6172696573223b7d, '', 15, 4, 1, 'admin/structure/taxonomy', 'admin/structure/taxonomy', 'List', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/taxonomy/taxonomy.admin.inc'), -('admin/structure/types', '', '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'node_overview_types', 0x613a303a7b7d, '', 7, 3, 0, '', 'admin/structure/types', 'Content types', 't', '', '', 'a:0:{}', 6, 'Manage content types, including default status, front page promotion, comment settings, etc.', '', 0, 'modules/node/content_types.inc'), -('admin/structure/types/add', '', '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31343a226e6f64655f747970655f666f726d223b7d, '', 15, 4, 1, 'admin/structure/types', 'admin/structure/types', 'Add content type', 't', '', '', 'a:0:{}', 388, '', '', 0, 'modules/node/content_types.inc'), -('admin/structure/types/list', '', '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'node_overview_types', 0x613a303a7b7d, '', 15, 4, 1, 'admin/structure/types', 'admin/structure/types', 'List', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/node/content_types.inc'), -('admin/structure/types/manage/%', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31343a226e6f64655f747970655f666f726d223b693a313b693a343b7d, '', 30, 5, 0, '', 'admin/structure/types/manage/%', 'Edit content type', 'node_type_page_title', 'a:1:{i:0;i:4;}', '', 'a:0:{}', 6, '', '', 0, 'modules/node/content_types.inc'), -('admin/structure/types/manage/%/comment/display', 0x613a313a7b693a343b733a32323a22636f6d6d656e745f6e6f64655f747970655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a373a22636f6d6d656e74223b693a323b693a343b693a333b733a373a2264656661756c74223b7d, '', 123, 7, 1, 'admin/structure/types/manage/%', 'admin/structure/types/manage/%', 'Comment display', 't', '', '', 'a:0:{}', 132, '', '', 4, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/comment/display/default', 0x613a313a7b693a343b733a32323a22636f6d6d656e745f6e6f64655f747970655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a373a2264656661756c74223b693a333b733a31313a22757365725f616363657373223b693a343b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a373a22636f6d6d656e74223b693a323b693a343b693a333b733a373a2264656661756c74223b7d, '', 247, 8, 1, 'admin/structure/types/manage/%/comment/display', 'admin/structure/types/manage/%', 'Default', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/comment/display/full', 0x613a313a7b693a343b733a32323a22636f6d6d656e745f6e6f64655f747970655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a343a2266756c6c223b693a333b733a31313a22757365725f616363657373223b693a343b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a373a22636f6d6d656e74223b693a323b693a343b693a333b733a343a2266756c6c223b7d, '', 247, 8, 1, 'admin/structure/types/manage/%/comment/display', 'admin/structure/types/manage/%', 'Full comment', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/comment/fields', 0x613a313a7b693a343b733a32323a22636f6d6d656e745f6e6f64655f747970655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a32383a226669656c645f75695f6669656c645f6f766572766965775f666f726d223b693a313b733a373a22636f6d6d656e74223b693a323b693a343b7d, '', 123, 7, 1, 'admin/structure/types/manage/%', 'admin/structure/types/manage/%', 'Comment fields', 't', '', '', 'a:0:{}', 132, '', '', 3, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/comment/fields/%', 0x613a323a7b693a343b613a313a7b733a32323a22636f6d6d656e745f6e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a373b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a226669656c645f75695f6669656c645f656469745f666f726d223b693a313b693a373b7d, '', 246, 8, 0, '', 'admin/structure/types/manage/%/comment/fields/%', '', 'field_ui_menu_title', 'a:1:{i:0;i:7;}', '', 'a:0:{}', 6, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/comment/fields/%/delete', 0x613a323a7b693a343b613a313a7b733a32323a22636f6d6d656e745f6e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a373b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32363a226669656c645f75695f6669656c645f64656c6574655f666f726d223b693a313b693a373b7d, '', 493, 9, 1, 'admin/structure/types/manage/%/comment/fields/%', 'admin/structure/types/manage/%/comment/fields/%', 'Delete', 't', '', '', 'a:0:{}', 132, '', '', 10, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/comment/fields/%/edit', 0x613a323a7b693a343b613a313a7b733a32323a22636f6d6d656e745f6e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a373b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a226669656c645f75695f6669656c645f656469745f666f726d223b693a313b693a373b7d, '', 493, 9, 1, 'admin/structure/types/manage/%/comment/fields/%', 'admin/structure/types/manage/%/comment/fields/%', 'Edit', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/comment/fields/%/field-settings', 0x613a323a7b693a343b613a313a7b733a32323a22636f6d6d656e745f6e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a373b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32383a226669656c645f75695f6669656c645f73657474696e67735f666f726d223b693a313b693a373b7d, '', 493, 9, 1, 'admin/structure/types/manage/%/comment/fields/%', 'admin/structure/types/manage/%/comment/fields/%', 'Field settings', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/comment/fields/%/widget-type', 0x613a323a7b693a343b613a313a7b733a32323a22636f6d6d656e745f6e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a373b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a373a22636f6d6d656e74223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32353a226669656c645f75695f7769646765745f747970655f666f726d223b693a313b693a373b7d, '', 493, 9, 1, 'admin/structure/types/manage/%/comment/fields/%', 'admin/structure/types/manage/%/comment/fields/%', 'Widget type', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/delete', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a226e6f64655f747970655f64656c6574655f636f6e6669726d223b693a313b693a343b7d, '', 61, 6, 0, '', 'admin/structure/types/manage/%/delete', 'Delete', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/node/content_types.inc'), -('admin/structure/types/manage/%/display', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a226e6f6465223b693a323b693a343b693a333b733a373a2264656661756c74223b7d, '', 61, 6, 1, 'admin/structure/types/manage/%', 'admin/structure/types/manage/%', 'Manage display', 't', '', '', 'a:0:{}', 132, '', '', 2, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/display/default', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a373a2264656661756c74223b693a333b733a31313a22757365725f616363657373223b693a343b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a226e6f6465223b693a323b693a343b693a333b733a373a2264656661756c74223b7d, '', 123, 7, 1, 'admin/structure/types/manage/%/display', 'admin/structure/types/manage/%', 'Default', 't', '', '', 'a:0:{}', 140, '', '', -10, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/display/full', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a343a2266756c6c223b693a333b733a31313a22757365725f616363657373223b693a343b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a226e6f6465223b693a323b693a343b693a333b733a343a2266756c6c223b7d, '', 123, 7, 1, 'admin/structure/types/manage/%/display', 'admin/structure/types/manage/%', 'Full content', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/display/rss', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a333a22727373223b693a333b733a31313a22757365725f616363657373223b693a343b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a226e6f6465223b693a323b693a343b693a333b733a333a22727373223b7d, '', 123, 7, 1, 'admin/structure/types/manage/%/display', 'admin/structure/types/manage/%', 'RSS', 't', '', '', 'a:0:{}', 132, '', '', 2, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/display/search_index', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a31323a227365617263685f696e646578223b693a333b733a31313a22757365725f616363657373223b693a343b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a226e6f6465223b693a323b693a343b693a333b733a31323a227365617263685f696e646578223b7d, '', 123, 7, 1, 'admin/structure/types/manage/%/display', 'admin/structure/types/manage/%', 'Search index', 't', '', '', 'a:0:{}', 132, '', '', 3, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/display/search_result', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a31333a227365617263685f726573756c74223b693a333b733a31313a22757365725f616363657373223b693a343b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a226e6f6465223b693a323b693a343b693a333b733a31333a227365617263685f726573756c74223b7d, '', 123, 7, 1, 'admin/structure/types/manage/%/display', 'admin/structure/types/manage/%', 'Search result', 't', '', '', 'a:0:{}', 132, '', '', 4, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/display/teaser', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', '_field_ui_view_mode_menu_access', 0x613a353a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a363a22746561736572223b693a333b733a31313a22757365725f616363657373223b693a343b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a343a7b693a303b733a33303a226669656c645f75695f646973706c61795f6f766572766965775f666f726d223b693a313b733a343a226e6f6465223b693a323b693a343b693a333b733a363a22746561736572223b7d, '', 123, 7, 1, 'admin/structure/types/manage/%/display', 'admin/structure/types/manage/%', 'Teaser', 't', '', '', 'a:0:{}', 132, '', '', 1, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/edit', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31343a226e6f64655f747970655f666f726d223b693a313b693a343b7d, '', 61, 6, 1, 'admin/structure/types/manage/%', 'admin/structure/types/manage/%', 'Edit', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/node/content_types.inc'); -INSERT INTO `menu_router` (`path`, `load_functions`, `to_arg_functions`, `access_callback`, `access_arguments`, `page_callback`, `page_arguments`, `delivery_callback`, `fit`, `number_parts`, `context`, `tab_parent`, `tab_root`, `title`, `title_callback`, `title_arguments`, `theme_callback`, `theme_arguments`, `type`, `description`, `position`, `weight`, `include_file`) VALUES -('admin/structure/types/manage/%/fields', 0x613a313a7b693a343b733a31343a226e6f64655f747970655f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a333a7b693a303b733a32383a226669656c645f75695f6669656c645f6f766572766965775f666f726d223b693a313b733a343a226e6f6465223b693a323b693a343b7d, '', 61, 6, 1, 'admin/structure/types/manage/%', 'admin/structure/types/manage/%', 'Manage fields', 't', '', '', 'a:0:{}', 132, '', '', 1, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/fields/%', 0x613a323a7b693a343b613a313a7b733a31343a226e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a363b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a226669656c645f75695f6669656c645f656469745f666f726d223b693a313b693a363b7d, '', 122, 7, 0, '', 'admin/structure/types/manage/%/fields/%', '', 'field_ui_menu_title', 'a:1:{i:0;i:6;}', '', 'a:0:{}', 6, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/fields/%/delete', 0x613a323a7b693a343b613a313a7b733a31343a226e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a363b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32363a226669656c645f75695f6669656c645f64656c6574655f666f726d223b693a313b693a363b7d, '', 245, 8, 1, 'admin/structure/types/manage/%/fields/%', 'admin/structure/types/manage/%/fields/%', 'Delete', 't', '', '', 'a:0:{}', 132, '', '', 10, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/fields/%/edit', 0x613a323a7b693a343b613a313a7b733a31343a226e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a363b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a226669656c645f75695f6669656c645f656469745f666f726d223b693a313b693a363b7d, '', 245, 8, 1, 'admin/structure/types/manage/%/fields/%', 'admin/structure/types/manage/%/fields/%', 'Edit', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/fields/%/field-settings', 0x613a323a7b693a343b613a313a7b733a31343a226e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a363b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32383a226669656c645f75695f6669656c645f73657474696e67735f666f726d223b693a313b693a363b7d, '', 245, 8, 1, 'admin/structure/types/manage/%/fields/%', 'admin/structure/types/manage/%/fields/%', 'Field settings', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/structure/types/manage/%/fields/%/widget-type', 0x613a323a7b693a343b613a313a7b733a31343a226e6f64655f747970655f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d693a363b613a313a7b733a31383a226669656c645f75695f6d656e755f6c6f6164223b613a343a7b693a303b733a343a226e6f6465223b693a313b693a343b693a323b733a313a2234223b693a333b733a343a22256d6170223b7d7d7d, '', 'user_access', 0x613a313a7b693a303b733a32343a2261646d696e697374657220636f6e74656e74207479706573223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32353a226669656c645f75695f7769646765745f747970655f666f726d223b693a313b693a363b7d, '', 245, 8, 1, 'admin/structure/types/manage/%/fields/%', 'admin/structure/types/manage/%/fields/%', 'Widget type', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/field_ui/field_ui.admin.inc'), -('admin/tasks', '', '', 'user_access', 0x613a313a7b693a303b733a32373a226163636573732061646d696e697374726174696f6e207061676573223b7d, 'system_admin_menu_block_page', 0x613a303a7b7d, '', 3, 2, 1, 'admin', 'admin', 'Tasks', 't', '', '', 'a:0:{}', 140, '', '', -20, 'modules/system/system.admin.inc'), -('admin/update/ready', '', '', 'update_manager_access', 0x613a303a7b7d, 'drupal_get_form', 0x613a313a7b693a303b733a33323a227570646174655f6d616e616765725f7570646174655f72656164795f666f726d223b7d, '', 7, 3, 0, '', 'admin/update/ready', 'Ready to update', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/update/update.manager.inc'), -('batch', '', '', '1', 0x613a303a7b7d, 'system_batch_page', 0x613a303a7b7d, '', 1, 1, 0, '', 'batch', '', 't', '', '_system_batch_theme', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('blog', '', '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'blog_page_last', 0x613a303a7b7d, '', 1, 1, 0, '', 'blog', 'Blogs', 't', '', '', 'a:0:{}', 20, '', '', 0, 'modules/blog/blog.pages.inc'), -('blog/%', 0x613a313a7b693a313b733a32323a22757365725f7569645f6f7074696f6e616c5f6c6f6164223b7d, 0x613a313a7b693a313b733a32343a22757365725f7569645f6f7074696f6e616c5f746f5f617267223b7d, 'blog_page_user_access', 0x613a313a7b693a303b693a313b7d, 'blog_page_user', 0x613a313a7b693a303b693a313b7d, '', 2, 2, 0, '', 'blog/%', 'My blog', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/blog/blog.pages.inc'), -('blog/%/feed', 0x613a313a7b693a313b733a393a22757365725f6c6f6164223b7d, '', 'blog_page_user_access', 0x613a313a7b693a303b693a313b7d, 'blog_feed_user', 0x613a313a7b693a303b693a313b7d, '', 5, 3, 0, '', 'blog/%/feed', 'Blogs', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/blog/blog.pages.inc'), -('blog/feed', '', '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'blog_feed_last', 0x613a303a7b7d, '', 3, 2, 0, '', 'blog/feed', 'Blogs', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/blog/blog.pages.inc'), -('comment/%', 0x613a313a7b693a313b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261636365737320636f6d6d656e7473223b7d, 'comment_permalink', 0x613a313a7b693a303b693a313b7d, '', 2, 2, 0, '', 'comment/%', 'Comment permalink', 't', '', '', 'a:0:{}', 6, '', '', 0, ''), -('comment/%/approve', 0x613a313a7b693a313b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e697374657220636f6d6d656e7473223b7d, 'comment_approve', 0x613a313a7b693a303b693a313b7d, '', 5, 3, 0, '', 'comment/%/approve', 'Approve', 't', '', '', 'a:0:{}', 6, '', '', 1, 'modules/comment/comment.pages.inc'), -('comment/%/delete', 0x613a313a7b693a313b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31393a2261646d696e697374657220636f6d6d656e7473223b7d, 'comment_confirm_delete_page', 0x613a313a7b693a303b693a313b7d, '', 5, 3, 1, 'comment/%', 'comment/%', 'Delete', 't', '', '', 'a:0:{}', 132, '', '', 2, 'modules/comment/comment.admin.inc'), -('comment/%/edit', 0x613a313a7b693a313b733a31323a22636f6d6d656e745f6c6f6164223b7d, '', 'comment_access', 0x613a323a7b693a303b733a343a2265646974223b693a313b693a313b7d, 'comment_edit_page', 0x613a313a7b693a303b693a313b7d, '', 5, 3, 1, 'comment/%', 'comment/%', 'Edit', 't', '', '', 'a:0:{}', 132, '', '', 0, ''), -('comment/%/view', 0x613a313a7b693a313b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31353a2261636365737320636f6d6d656e7473223b7d, 'comment_permalink', 0x613a313a7b693a303b693a313b7d, '', 5, 3, 1, 'comment/%', 'comment/%', 'View comment', 't', '', '', 'a:0:{}', 140, '', '', -10, ''), -('comment/reply/%', 0x613a313a7b693a323b733a393a226e6f64655f6c6f6164223b7d, '', 'node_access', 0x613a323a7b693a303b733a343a2276696577223b693a313b693a323b7d, 'comment_reply', 0x613a313a7b693a303b693a323b7d, '', 6, 3, 0, '', 'comment/reply/%', 'Add new comment', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/comment/comment.pages.inc'), -('contact', '', '', 'user_access', 0x613a313a7b693a303b733a32393a2261636365737320736974652d7769646520636f6e7461637420666f726d223b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31373a22636f6e746163745f736974655f666f726d223b7d, '', 1, 1, 0, '', 'contact', 'Contact', 't', '', '', 'a:0:{}', 20, '', '', 0, 'modules/contact/contact.pages.inc'), -('file/ajax', '', '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'file_ajax_upload', 0x613a303a7b7d, 'ajax_deliver', 3, 2, 0, '', 'file/ajax', '', 't', '', 'ajax_base_page_theme', 'a:0:{}', 0, '', '', 0, ''), -('file/progress', '', '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'file_ajax_progress', 0x613a303a7b7d, '', 3, 2, 0, '', 'file/progress', '', 't', '', 'ajax_base_page_theme', 'a:0:{}', 0, '', '', 0, ''), -('filter/tips', '', '', '1', 0x613a303a7b7d, 'filter_tips_long', 0x613a303a7b7d, '', 3, 2, 0, '', 'filter/tips', 'Compose tips', 't', '', '', 'a:0:{}', 20, '', '', 0, 'modules/filter/filter.pages.inc'), -('node', '', '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'node_page_default', 0x613a303a7b7d, '', 1, 1, 0, '', 'node', '', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('node/%', 0x613a313a7b693a313b733a393a226e6f64655f6c6f6164223b7d, '', 'node_access', 0x613a323a7b693a303b733a343a2276696577223b693a313b693a313b7d, 'node_page_view', 0x613a313a7b693a303b693a313b7d, '', 2, 2, 0, '', 'node/%', '', 'node_page_title', 'a:1:{i:0;i:1;}', '', 'a:0:{}', 6, '', '', 0, ''), -('node/%/delete', 0x613a313a7b693a313b733a393a226e6f64655f6c6f6164223b7d, '', 'node_access', 0x613a323a7b693a303b733a363a2264656c657465223b693a313b693a313b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31393a226e6f64655f64656c6574655f636f6e6669726d223b693a313b693a313b7d, '', 5, 3, 2, 'node/%', 'node/%', 'Delete', 't', '', '', 'a:0:{}', 132, '', '', 1, 'modules/node/node.pages.inc'), -('node/%/edit', 0x613a313a7b693a313b733a393a226e6f64655f6c6f6164223b7d, '', 'node_access', 0x613a323a7b693a303b733a363a22757064617465223b693a313b693a313b7d, 'node_page_edit', 0x613a313a7b693a303b693a313b7d, '', 5, 3, 3, 'node/%', 'node/%', 'Edit', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/node/node.pages.inc'), -('node/%/revisions', 0x613a313a7b693a313b733a393a226e6f64655f6c6f6164223b7d, '', '_node_revision_access', 0x613a313a7b693a303b693a313b7d, 'node_revision_overview', 0x613a313a7b693a303b693a313b7d, '', 5, 3, 1, 'node/%', 'node/%', 'Revisions', 't', '', '', 'a:0:{}', 132, '', '', 2, 'modules/node/node.pages.inc'), -('node/%/revisions/%/delete', 0x613a323a7b693a313b613a313a7b733a393a226e6f64655f6c6f6164223b613a313a7b693a303b693a333b7d7d693a333b4e3b7d, '', '_node_revision_access', 0x613a323a7b693a303b693a313b693a313b733a363a2264656c657465223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32383a226e6f64655f7265766973696f6e5f64656c6574655f636f6e6669726d223b693a313b693a313b7d, '', 21, 5, 0, '', 'node/%/revisions/%/delete', 'Delete earlier revision', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/node/node.pages.inc'), -('node/%/revisions/%/revert', 0x613a323a7b693a313b613a313a7b733a393a226e6f64655f6c6f6164223b613a313a7b693a303b693a333b7d7d693a333b4e3b7d, '', '_node_revision_access', 0x613a323a7b693a303b693a313b693a313b733a363a22757064617465223b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32383a226e6f64655f7265766973696f6e5f7265766572745f636f6e6669726d223b693a313b693a313b7d, '', 21, 5, 0, '', 'node/%/revisions/%/revert', 'Revert to earlier revision', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/node/node.pages.inc'), -('node/%/revisions/%/view', 0x613a323a7b693a313b613a313a7b733a393a226e6f64655f6c6f6164223b613a313a7b693a303b693a333b7d7d693a333b4e3b7d, '', '_node_revision_access', 0x613a313a7b693a303b693a313b7d, 'node_show', 0x613a323a7b693a303b693a313b693a313b623a313b7d, '', 21, 5, 0, '', 'node/%/revisions/%/view', 'Revisions', 't', '', '', 'a:0:{}', 6, '', '', 0, ''), -('node/%/view', 0x613a313a7b693a313b733a393a226e6f64655f6c6f6164223b7d, '', 'node_access', 0x613a323a7b693a303b733a343a2276696577223b693a313b693a313b7d, 'node_page_view', 0x613a313a7b693a303b693a313b7d, '', 5, 3, 1, 'node/%', 'node/%', 'View', 't', '', '', 'a:0:{}', 140, '', '', -10, ''), -('node/add', '', '', '_node_add_access', 0x613a303a7b7d, 'node_add_page', 0x613a303a7b7d, '', 3, 2, 0, '', 'node/add', 'Add content', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/node/node.pages.inc'), -('node/add/article', '', '', 'node_access', 0x613a323a7b693a303b733a363a22637265617465223b693a313b733a373a2261727469636c65223b7d, 'node_add', 0x613a313a7b693a303b733a373a2261727469636c65223b7d, '', 7, 3, 0, '', 'node/add/article', 'Article', 'check_plain', '', '', 'a:0:{}', 6, 'Use articles for time-sensitive content like news, press releases or blog posts.', '', 0, 'modules/node/node.pages.inc'), -('node/add/blog', '', '', 'node_access', 0x613a323a7b693a303b733a363a22637265617465223b693a313b733a343a22626c6f67223b7d, 'node_add', 0x613a313a7b693a303b733a343a22626c6f67223b7d, '', 7, 3, 0, '', 'node/add/blog', 'Blog entry', 'check_plain', '', '', 'a:0:{}', 6, 'Use for multi-user blogs. Every user gets a personal blog.', '', 0, 'modules/node/node.pages.inc'), -('node/add/page', '', '', 'node_access', 0x613a323a7b693a303b733a363a22637265617465223b693a313b733a343a2270616765223b7d, 'node_add', 0x613a313a7b693a303b733a343a2270616765223b7d, '', 7, 3, 0, '', 'node/add/page', 'Basic page', 'check_plain', '', '', 'a:0:{}', 6, 'Use basic pages for your static content, such as an ''About us'' page.', '', 0, 'modules/node/node.pages.inc'), -('overlay-ajax/%', 0x613a313a7b693a313b4e3b7d, '', 'user_access', 0x613a313a7b693a303b733a31343a22616363657373206f7665726c6179223b7d, 'overlay_ajax_render_region', 0x613a313a7b693a303b693a313b7d, '', 2, 2, 0, '', 'overlay-ajax/%', '', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('overlay/dismiss-message', '', '', 'user_access', 0x613a313a7b693a303b733a31343a22616363657373206f7665726c6179223b7d, 'overlay_user_dismiss_message', 0x613a303a7b7d, '', 3, 2, 0, '', 'overlay/dismiss-message', '', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('rss.xml', '', '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'node_feed', 0x613a323a7b693a303b623a303b693a313b613a303a7b7d7d, '', 1, 1, 0, '', 'rss.xml', 'RSS feed', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('search', '', '', 'search_is_active', 0x613a303a7b7d, 'search_view', 0x613a303a7b7d, '', 1, 1, 0, '', 'search', 'Search', 't', '', '', 'a:0:{}', 20, '', '', 0, 'modules/search/search.pages.inc'), -('search/node', '', '', '_search_menu_access', 0x613a313a7b693a303b733a343a226e6f6465223b7d, 'search_view', 0x613a323a7b693a303b733a343a226e6f6465223b693a313b733a303a22223b7d, '', 3, 2, 1, 'search', 'search', 'Content', 't', '', '', 'a:0:{}', 132, '', '', -10, 'modules/search/search.pages.inc'), -('search/node/%', 0x613a313a7b693a323b613a313a7b733a31343a226d656e755f7461696c5f6c6f6164223b613a323a7b693a303b733a343a22256d6170223b693a313b733a363a2225696e646578223b7d7d7d, 0x613a313a7b693a323b733a31363a226d656e755f7461696c5f746f5f617267223b7d, '_search_menu_access', 0x613a313a7b693a303b733a343a226e6f6465223b7d, 'search_view', 0x613a323a7b693a303b733a343a226e6f6465223b693a313b693a323b7d, '', 6, 3, 1, 'search/node', 'search/node/%', 'Content', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/search/search.pages.inc'), -('search/user', '', '', '_search_menu_access', 0x613a313a7b693a303b733a343a2275736572223b7d, 'search_view', 0x613a323a7b693a303b733a343a2275736572223b693a313b733a303a22223b7d, '', 3, 2, 1, 'search', 'search', 'Users', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/search/search.pages.inc'), -('search/user/%', 0x613a313a7b693a323b613a313a7b733a31343a226d656e755f7461696c5f6c6f6164223b613a323a7b693a303b733a343a22256d6170223b693a313b733a363a2225696e646578223b7d7d7d, 0x613a313a7b693a323b733a31363a226d656e755f7461696c5f746f5f617267223b7d, '_search_menu_access', 0x613a313a7b693a303b733a343a2275736572223b7d, 'search_view', 0x613a323a7b693a303b733a343a2275736572223b693a313b693a323b7d, '', 6, 3, 1, 'search/node', 'search/node/%', 'Users', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/search/search.pages.inc'), -('sites/default/files/styles/%', 0x613a313a7b693a343b733a31363a22696d6167655f7374796c655f6c6f6164223b7d, '', '1', 0x613a303a7b7d, 'image_style_deliver', 0x613a313a7b693a303b693a343b7d, '', 30, 5, 0, '', 'sites/default/files/styles/%', 'Generate image style', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('system/ajax', '', '', '1', 0x613a303a7b7d, 'ajax_form_callback', 0x613a303a7b7d, 'ajax_deliver', 3, 2, 0, '', 'system/ajax', 'AHAH callback', 't', '', 'ajax_base_page_theme', 'a:0:{}', 0, '', '', 0, 'includes/form.inc'), -('system/files', '', '', '1', 0x613a303a7b7d, 'file_download', 0x613a313a7b693a303b733a373a2270726976617465223b7d, '', 3, 2, 0, '', 'system/files', 'File download', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('system/files/styles/%', 0x613a313a7b693a333b733a31363a22696d6167655f7374796c655f6c6f6164223b7d, '', '1', 0x613a303a7b7d, 'image_style_deliver', 0x613a313a7b693a303b693a333b7d, '', 14, 4, 0, '', 'system/files/styles/%', 'Generate image style', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('system/temporary', '', '', '1', 0x613a303a7b7d, 'file_download', 0x613a313a7b693a303b733a393a2274656d706f72617279223b7d, '', 3, 2, 0, '', 'system/temporary', 'Temporary files', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('system/timezone', '', '', '1', 0x613a303a7b7d, 'system_timezone', 0x613a303a7b7d, '', 3, 2, 0, '', 'system/timezone', 'Time zone', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/system/system.admin.inc'), -('taxonomy/autocomplete', '', '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'taxonomy_autocomplete', 0x613a303a7b7d, '', 3, 2, 0, '', 'taxonomy/autocomplete', 'Autocomplete taxonomy', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/taxonomy/taxonomy.pages.inc'), -('taxonomy/term/%', 0x613a313a7b693a323b733a31383a227461786f6e6f6d795f7465726d5f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'taxonomy_term_page', 0x613a313a7b693a303b693a323b7d, '', 6, 3, 0, '', 'taxonomy/term/%', 'Taxonomy term', 'taxonomy_term_title', 'a:1:{i:0;i:2;}', '', 'a:0:{}', 6, '', '', 0, 'modules/taxonomy/taxonomy.pages.inc'), -('taxonomy/term/%/edit', 0x613a313a7b693a323b733a31383a227461786f6e6f6d795f7465726d5f6c6f6164223b7d, '', 'taxonomy_term_edit_access', 0x613a313a7b693a303b693a323b7d, 'drupal_get_form', 0x613a333a7b693a303b733a31383a227461786f6e6f6d795f666f726d5f7465726d223b693a313b693a323b693a323b4e3b7d, '', 13, 4, 1, 'taxonomy/term/%', 'taxonomy/term/%', 'Edit', 't', '', '', 'a:0:{}', 132, '', '', 10, 'modules/taxonomy/taxonomy.admin.inc'), -('taxonomy/term/%/feed', 0x613a313a7b693a323b733a31383a227461786f6e6f6d795f7465726d5f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'taxonomy_term_feed', 0x613a313a7b693a303b693a323b7d, '', 13, 4, 0, '', 'taxonomy/term/%/feed', 'Taxonomy term', 'taxonomy_term_title', 'a:1:{i:0;i:2;}', '', 'a:0:{}', 0, '', '', 0, 'modules/taxonomy/taxonomy.pages.inc'), -('taxonomy/term/%/view', 0x613a313a7b693a323b733a31383a227461786f6e6f6d795f7465726d5f6c6f6164223b7d, '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320636f6e74656e74223b7d, 'taxonomy_term_page', 0x613a313a7b693a303b693a323b7d, '', 13, 4, 1, 'taxonomy/term/%', 'taxonomy/term/%', 'View', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/taxonomy/taxonomy.pages.inc'), -('toolbar/toggle', '', '', 'user_access', 0x613a313a7b693a303b733a31343a2261636365737320746f6f6c626172223b7d, 'toolbar_toggle_page', 0x613a303a7b7d, '', 3, 2, 0, '', 'toolbar/toggle', 'Toggle drawer visibility', 't', '', '', 'a:0:{}', 0, '', '', 0, ''), -('user', '', '', '1', 0x613a303a7b7d, 'user_page', 0x613a303a7b7d, '', 1, 1, 0, '', 'user', 'User account', 'user_menu_title', '', '', 'a:0:{}', 6, '', '', -10, 'modules/user/user.pages.inc'), -('user/%', 0x613a313a7b693a313b733a393a22757365725f6c6f6164223b7d, '', 'user_view_access', 0x613a313a7b693a303b693a313b7d, 'user_view_page', 0x613a313a7b693a303b693a313b7d, '', 2, 2, 0, '', 'user/%', 'My account', 'user_page_title', 'a:1:{i:0;i:1;}', '', 'a:0:{}', 6, '', '', 0, ''), -('user/%/cancel', 0x613a313a7b693a313b733a393a22757365725f6c6f6164223b7d, '', 'user_cancel_access', 0x613a313a7b693a303b693a313b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32343a22757365725f63616e63656c5f636f6e6669726d5f666f726d223b693a313b693a313b7d, '', 5, 3, 0, '', 'user/%/cancel', 'Cancel account', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/user/user.pages.inc'), -('user/%/cancel/confirm/%/%', 0x613a333a7b693a313b733a393a22757365725f6c6f6164223b693a343b4e3b693a353b4e3b7d, '', 'user_cancel_access', 0x613a313a7b693a303b693a313b7d, 'user_cancel_confirm', 0x613a333a7b693a303b693a313b693a313b693a343b693a323b693a353b7d, '', 44, 6, 0, '', 'user/%/cancel/confirm/%/%', 'Confirm account cancellation', 't', '', '', 'a:0:{}', 6, '', '', 0, 'modules/user/user.pages.inc'), -('user/%/contact', 0x613a313a7b693a313b733a393a22757365725f6c6f6164223b7d, '', '_contact_personal_tab_access', 0x613a313a7b693a303b693a313b7d, 'drupal_get_form', 0x613a323a7b693a303b733a32313a22636f6e746163745f706572736f6e616c5f666f726d223b693a313b693a313b7d, '', 5, 3, 1, 'user/%', 'user/%', 'Contact', 't', '', '', 'a:0:{}', 132, '', '', 2, 'modules/contact/contact.pages.inc'), -('user/%/edit', 0x613a313a7b693a313b733a393a22757365725f6c6f6164223b7d, '', 'user_edit_access', 0x613a313a7b693a303b693a313b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31373a22757365725f70726f66696c655f666f726d223b693a313b693a313b7d, '', 5, 3, 1, 'user/%', 'user/%', 'Edit', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/user/user.pages.inc'), -('user/%/edit/account', 0x613a313a7b693a313b613a313a7b733a31383a22757365725f63617465676f72795f6c6f6164223b613a323a7b693a303b733a343a22256d6170223b693a313b733a363a2225696e646578223b7d7d7d, '', 'user_edit_access', 0x613a313a7b693a303b693a313b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31373a22757365725f70726f66696c655f666f726d223b693a313b693a313b7d, '', 11, 4, 1, 'user/%/edit', 'user/%', 'Account', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/user/user.pages.inc'), -('user/%/shortcuts', 0x613a313a7b693a313b733a393a22757365725f6c6f6164223b7d, '', 'shortcut_set_switch_access', 0x613a313a7b693a303b693a313b7d, 'drupal_get_form', 0x613a323a7b693a303b733a31393a2273686f72746375745f7365745f737769746368223b693a313b693a313b7d, '', 5, 3, 1, 'user/%', 'user/%', 'Shortcuts', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/shortcut/shortcut.admin.inc'), -('user/%/view', 0x613a313a7b693a313b733a393a22757365725f6c6f6164223b7d, '', 'user_view_access', 0x613a313a7b693a303b693a313b7d, 'user_view_page', 0x613a313a7b693a303b693a313b7d, '', 5, 3, 1, 'user/%', 'user/%', 'View', 't', '', '', 'a:0:{}', 140, '', '', -10, ''), -('user/autocomplete', '', '', 'user_access', 0x613a313a7b693a303b733a32303a2261636365737320757365722070726f66696c6573223b7d, 'user_autocomplete', 0x613a303a7b7d, '', 3, 2, 0, '', 'user/autocomplete', 'User autocomplete', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/user/user.pages.inc'), -('user/login', '', '', 'user_is_anonymous', 0x613a303a7b7d, 'user_page', 0x613a303a7b7d, '', 3, 2, 1, 'user', 'user', 'Log in', 't', '', '', 'a:0:{}', 140, '', '', 0, 'modules/user/user.pages.inc'), -('user/logout', '', '', 'user_is_logged_in', 0x613a303a7b7d, 'user_logout', 0x613a303a7b7d, '', 3, 2, 0, '', 'user/logout', 'Log out', 't', '', '', 'a:0:{}', 6, '', '', 10, 'modules/user/user.pages.inc'), -('user/password', '', '', '1', 0x613a303a7b7d, 'drupal_get_form', 0x613a313a7b693a303b733a393a22757365725f70617373223b7d, '', 3, 2, 1, 'user', 'user', 'Request new password', 't', '', '', 'a:0:{}', 132, '', '', 0, 'modules/user/user.pages.inc'), -('user/register', '', '', 'user_register_access', 0x613a303a7b7d, 'drupal_get_form', 0x613a313a7b693a303b733a31383a22757365725f72656769737465725f666f726d223b7d, '', 3, 2, 1, 'user', 'user', 'Create new account', 't', '', '', 'a:0:{}', 132, '', '', 0, ''), -('user/reset/%/%/%', 0x613a333a7b693a323b4e3b693a333b4e3b693a343b4e3b7d, '', '1', 0x613a303a7b7d, 'drupal_get_form', 0x613a343a7b693a303b733a31353a22757365725f706173735f7265736574223b693a313b693a323b693a323b693a333b693a333b693a343b7d, '', 24, 5, 0, '', 'user/reset/%/%/%', 'Reset password', 't', '', '', 'a:0:{}', 0, '', '', 0, 'modules/user/user.pages.inc'); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `node` --- - -CREATE TABLE IF NOT EXISTS `node` ( + +DROP TABLE IF EXISTS `node`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `node` ( `nid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'The primary identifier for a node.', `vid` int(10) unsigned DEFAULT NULL COMMENT 'The current node_revision.vid version identifier.', `type` varchar(32) NOT NULL DEFAULT '' COMMENT 'The node_type.type of this node.', @@ -2037,42 +1469,29 @@ CREATE TABLE IF NOT EXISTS `node` ( KEY `node_type` (`type`(4)), KEY `uid` (`uid`), KEY `tnid` (`tnid`), - KEY `translate` (`translate`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='The base table for nodes.' AUTO_INCREMENT=21 ; + KEY `translate` (`translate`), + KEY `language` (`language`) +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='The base table for nodes.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `node` +-- Dumping data for table `node` -- -INSERT INTO `node` (`nid`, `vid`, `type`, `language`, `title`, `uid`, `status`, `created`, `changed`, `comment`, `promote`, `sticky`, `tnid`, `translate`) VALUES -(1, 1, 'page', 'und', 'About Us', 1, 1, 1362259091, 1364162413, 1, 0, 0, 0, 0), -(2, 2, 'article', 'und', 'Sample Page', 1, 1, 1362263185, 1364745274, 2, 1, 0, 0, 0), -(3, 3, 'blog', 'und', 'In egestas porta tortor sed imperdiet', 1, 1, 1363543126, 1364417706, 2, 0, 0, 0, 0), -(4, 4, 'blog', 'und', 'Nulla hendrerit vestibulum adipiscing', 1, 1, 1363626131, 1364417672, 2, 0, 0, 0, 0), -(5, 5, 'blog', 'und', 'Donec fermentum odio et turpis', 1, 1, 1363626200, 1364417490, 2, 0, 0, 0, 0), -(6, 6, 'blog', 'und', 'Sed rhoncus mollis porta', 1, 1, 1363626260, 1364417450, 2, 0, 0, 0, 0), -(7, 7, 'blog', 'und', 'Vivamus id ante neque', 1, 1, 1363626320, 1364417259, 2, 0, 0, 0, 0), -(8, 8, 'page', 'und', 'Typography', 1, 1, 1363722015, 1364162495, 1, 0, 0, 0, 0), -(9, 9, 'page', 'und', 'Columns', 1, 1, 1363799894, 1366060244, 1, 0, 0, 0, 0), -(10, 10, 'page', 'und', 'Lists Styles', 1, 1, 1363803207, 1366061317, 1, 0, 0, 0, 0), -(11, 11, 'page', 'und', 'Message Boxes', 1, 1, 1363804542, 1364223814, 1, 0, 0, 0, 0), -(12, 12, 'page', 'und', 'Portofolio', 1, 1, 1363988192, 1364130177, 1, 0, 0, 0, 0), -(13, 13, 'page', 'und', 'Portofolio Full Width', 1, 1, 1363989370, 1364130111, 1, 0, 0, 0, 0), -(14, 14, 'page', 'und', 'Integer velit diam', 1, 1, 1364065255, 1364065533, 1, 0, 0, 0, 0), -(15, 15, 'page', 'und', 'Vivamus ac odio dolor', 1, 1, 1364065629, 1364065829, 1, 0, 0, 0, 0), -(16, 16, 'page', 'und', 'Nulla mollis fermentum nunc', 1, 1, 1364065702, 1364065858, 1, 0, 0, 0, 0), -(17, 17, 'page', 'und', 'BlackBerry Website Project', 1, 1, 1364065751, 1364065891, 1, 0, 0, 0, 0), -(18, 18, 'page', 'und', 'Vestibulum ante ipsum primis', 1, 1, 1364065782, 1364065917, 1, 0, 0, 0, 0), -(19, 19, 'page', 'und', 'Dropcaps & Alerts', 1, 1, 1364174861, 1366058517, 1, 0, 0, 0, 0), -(20, 20, 'blog', 'und', 'Morbi ornare laoreet semper', 1, 1, 1364418052, 1366193601, 2, 0, 0, 0, 0); - --- -------------------------------------------------------- +LOCK TABLES `node` WRITE; +/*!40000 ALTER TABLE `node` DISABLE KEYS */; +INSERT INTO `node` VALUES (1,1,'page','und','About Us',1,1,1362259091,1364162413,1,0,0,0,0),(2,2,'article','und','Sample Page',1,1,1362263185,1364745274,2,1,0,0,0),(3,3,'blog','und','In egestas porta tortor sed imperdiet',1,1,1363543126,1364417706,2,0,0,0,0),(4,4,'blog','und','Nulla hendrerit vestibulum adipiscing',1,1,1363626131,1364417672,2,0,0,0,0),(5,5,'blog','und','Donec fermentum odio et turpis',1,1,1363626200,1364417490,2,0,0,0,0),(6,6,'blog','und','Sed rhoncus mollis porta',1,1,1363626260,1364417450,2,0,0,0,0),(7,7,'blog','und','Vivamus id ante neque',1,1,1363626320,1364417259,2,0,0,0,0),(8,8,'page','und','Typography',1,1,1363722015,1364162495,1,0,0,0,0),(9,9,'page','und','Columns',1,1,1363799894,1366060244,1,0,0,0,0),(10,10,'page','und','Lists Styles',1,1,1363803207,1366061317,1,0,0,0,0),(11,11,'page','und','Message Boxes',1,1,1363804542,1364223814,1,0,0,0,0),(12,12,'page','und','Portofolio',1,1,1363988192,1364130177,1,0,0,0,0),(13,13,'page','und','Portofolio Full Width',1,1,1363989370,1364130111,1,0,0,0,0),(14,14,'page','und','Integer velit diam',1,1,1364065255,1364065533,1,0,0,0,0),(15,15,'page','und','Vivamus ac odio dolor',1,1,1364065629,1364065829,1,0,0,0,0),(16,16,'page','und','Nulla mollis fermentum nunc',1,1,1364065702,1364065858,1,0,0,0,0),(17,17,'page','und','BlackBerry Website Project',1,1,1364065751,1364065891,1,0,0,0,0),(18,18,'page','und','Vestibulum ante ipsum primis',1,1,1364065782,1364065917,1,0,0,0,0),(19,19,'page','und','Dropcaps & Alerts',1,1,1364174861,1366058517,1,0,0,0,0),(20,20,'blog','und','Morbi ornare laoreet semper',1,1,1364418052,1366193601,2,0,0,0,0); +/*!40000 ALTER TABLE `node` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `node_access` +-- Table structure for table `node_access` -- -CREATE TABLE IF NOT EXISTS `node_access` ( +DROP TABLE IF EXISTS `node_access`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `node_access` ( `nid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The node.nid this record affects.', `gid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The grant ID a user must possess in the specified realm to gain this row’s privileges on the node.', `realm` varchar(255) NOT NULL DEFAULT '' COMMENT 'The realm in which the user must possess the grant ID. Each node access node can define one or more realms.', @@ -2081,21 +1500,26 @@ CREATE TABLE IF NOT EXISTS `node_access` ( `grant_delete` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'Boolean indicating whether a user with the realm/grant pair can delete this node.', PRIMARY KEY (`nid`,`gid`,`realm`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Identifies which realm/grant pairs a user must possess in...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `node_access` +-- Dumping data for table `node_access` -- -INSERT INTO `node_access` (`nid`, `gid`, `realm`, `grant_view`, `grant_update`, `grant_delete`) VALUES -(0, 0, 'all', 1, 0, 0); - --- -------------------------------------------------------- +LOCK TABLES `node_access` WRITE; +/*!40000 ALTER TABLE `node_access` DISABLE KEYS */; +INSERT INTO `node_access` VALUES (0,0,'all',1,0,0); +/*!40000 ALTER TABLE `node_access` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `node_comment_statistics` +-- Table structure for table `node_comment_statistics` -- -CREATE TABLE IF NOT EXISTS `node_comment_statistics` ( +DROP TABLE IF EXISTS `node_comment_statistics`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `node_comment_statistics` ( `nid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The node.nid for which the statistics are compiled.', `cid` int(11) NOT NULL DEFAULT '0' COMMENT 'The comment.cid of the last comment.', `last_comment_timestamp` int(11) NOT NULL DEFAULT '0' COMMENT 'The Unix timestamp of the last comment that was posted within this node, from comment.changed.', @@ -2107,40 +1531,26 @@ CREATE TABLE IF NOT EXISTS `node_comment_statistics` ( KEY `comment_count` (`comment_count`), KEY `last_comment_uid` (`last_comment_uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Maintains statistics of node and comments posts to show ...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `node_comment_statistics` +-- Dumping data for table `node_comment_statistics` -- -INSERT INTO `node_comment_statistics` (`nid`, `cid`, `last_comment_timestamp`, `last_comment_name`, `last_comment_uid`, `comment_count`) VALUES -(1, 0, 1362259091, NULL, 1, 0), -(2, 0, 1362263185, NULL, 1, 0), -(3, 0, 1363543126, NULL, 1, 0), -(4, 0, 1363626131, NULL, 1, 0), -(5, 4, 1363716283, '', 1, 1), -(6, 0, 1363626260, NULL, 1, 0), -(7, 3, 1363634730, '', 1, 3), -(8, 0, 1363722015, NULL, 1, 0), -(9, 0, 1363799894, NULL, 1, 0), -(10, 0, 1363803207, NULL, 1, 0), -(11, 0, 1363804542, NULL, 1, 0), -(12, 0, 1363988192, NULL, 1, 0), -(13, 0, 1363989370, NULL, 1, 0), -(14, 0, 1364065255, NULL, 1, 0), -(15, 0, 1364065629, NULL, 1, 0), -(16, 0, 1364065702, NULL, 1, 0), -(17, 0, 1364065751, NULL, 1, 0), -(18, 0, 1364065782, NULL, 1, 0), -(19, 0, 1364174861, NULL, 1, 0), -(20, 6, 1364849668, '', 1, 2); - --- -------------------------------------------------------- +LOCK TABLES `node_comment_statistics` WRITE; +/*!40000 ALTER TABLE `node_comment_statistics` DISABLE KEYS */; +INSERT INTO `node_comment_statistics` VALUES (1,0,1362259091,NULL,1,0),(2,0,1362263185,NULL,1,0),(3,0,1363543126,NULL,1,0),(4,0,1363626131,NULL,1,0),(5,4,1363716283,'',1,1),(6,0,1363626260,NULL,1,0),(7,3,1363634730,'',1,3),(8,0,1363722015,NULL,1,0),(9,0,1363799894,NULL,1,0),(10,0,1363803207,NULL,1,0),(11,0,1363804542,NULL,1,0),(12,0,1363988192,NULL,1,0),(13,0,1363989370,NULL,1,0),(14,0,1364065255,NULL,1,0),(15,0,1364065629,NULL,1,0),(16,0,1364065702,NULL,1,0),(17,0,1364065751,NULL,1,0),(18,0,1364065782,NULL,1,0),(19,0,1364174861,NULL,1,0),(20,6,1364849668,'',1,2); +/*!40000 ALTER TABLE `node_comment_statistics` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `node_revision` +-- Table structure for table `node_revision` -- -CREATE TABLE IF NOT EXISTS `node_revision` ( +DROP TABLE IF EXISTS `node_revision`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `node_revision` ( `nid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The node this version belongs to.', `vid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'The primary identifier for this version.', `uid` int(11) NOT NULL DEFAULT '0' COMMENT 'The users.uid that created this version.', @@ -2154,41 +1564,27 @@ CREATE TABLE IF NOT EXISTS `node_revision` ( PRIMARY KEY (`vid`), KEY `nid` (`nid`), KEY `uid` (`uid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores information about each saved version of a node.' AUTO_INCREMENT=21 ; +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='Stores information about each saved version of a node.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `node_revision` +-- Dumping data for table `node_revision` -- -INSERT INTO `node_revision` (`nid`, `vid`, `uid`, `title`, `log`, `timestamp`, `status`, `comment`, `promote`, `sticky`) VALUES -(1, 1, 1, 'About Us', '', 1364162413, 1, 1, 0, 0), -(2, 2, 1, 'Sample Page', '', 1364745274, 1, 2, 1, 0), -(3, 3, 1, 'In egestas porta tortor sed imperdiet', '', 1364417706, 1, 2, 0, 0), -(4, 4, 1, 'Nulla hendrerit vestibulum adipiscing', '', 1364417672, 1, 2, 0, 0), -(5, 5, 1, 'Donec fermentum odio et turpis', '', 1364417490, 1, 2, 0, 0), -(6, 6, 1, 'Sed rhoncus mollis porta', '', 1364417450, 1, 2, 0, 0), -(7, 7, 1, 'Vivamus id ante neque', '', 1364417259, 1, 2, 0, 0), -(8, 8, 1, 'Typography', '', 1364162495, 1, 1, 0, 0), -(9, 9, 1, 'Columns', '', 1366060244, 1, 1, 0, 0), -(10, 10, 1, 'Lists Styles', '', 1366061317, 1, 1, 0, 0), -(11, 11, 1, 'Message Boxes', '', 1364223814, 1, 1, 0, 0), -(12, 12, 1, 'Portofolio', '', 1364130177, 1, 1, 0, 0), -(13, 13, 1, 'Portofolio Full Width', '', 1364130111, 1, 1, 0, 0), -(14, 14, 1, 'Integer velit diam', '', 1364065533, 1, 1, 0, 0), -(15, 15, 1, 'Vivamus ac odio dolor', '', 1364065829, 1, 1, 0, 0), -(16, 16, 1, 'Nulla mollis fermentum nunc', '', 1364065858, 1, 1, 0, 0), -(17, 17, 1, 'BlackBerry Website Project', '', 1364065891, 1, 1, 0, 0), -(18, 18, 1, 'Vestibulum ante ipsum primis', '', 1364065917, 1, 1, 0, 0), -(19, 19, 1, 'Dropcaps & Alerts', '', 1366058517, 1, 1, 0, 0), -(20, 20, 1, 'Morbi ornare laoreet semper', '', 1366193601, 1, 2, 0, 0); - --- -------------------------------------------------------- +LOCK TABLES `node_revision` WRITE; +/*!40000 ALTER TABLE `node_revision` DISABLE KEYS */; +INSERT INTO `node_revision` VALUES (1,1,1,'About Us','',1364162413,1,1,0,0),(2,2,1,'Sample Page','',1364745274,1,2,1,0),(3,3,1,'In egestas porta tortor sed imperdiet','',1364417706,1,2,0,0),(4,4,1,'Nulla hendrerit vestibulum adipiscing','',1364417672,1,2,0,0),(5,5,1,'Donec fermentum odio et turpis','',1364417490,1,2,0,0),(6,6,1,'Sed rhoncus mollis porta','',1364417450,1,2,0,0),(7,7,1,'Vivamus id ante neque','',1364417259,1,2,0,0),(8,8,1,'Typography','',1364162495,1,1,0,0),(9,9,1,'Columns','',1366060244,1,1,0,0),(10,10,1,'Lists Styles','',1366061317,1,1,0,0),(11,11,1,'Message Boxes','',1364223814,1,1,0,0),(12,12,1,'Portofolio','',1364130177,1,1,0,0),(13,13,1,'Portofolio Full Width','',1364130111,1,1,0,0),(14,14,1,'Integer velit diam','',1364065533,1,1,0,0),(15,15,1,'Vivamus ac odio dolor','',1364065829,1,1,0,0),(16,16,1,'Nulla mollis fermentum nunc','',1364065858,1,1,0,0),(17,17,1,'BlackBerry Website Project','',1364065891,1,1,0,0),(18,18,1,'Vestibulum ante ipsum primis','',1364065917,1,1,0,0),(19,19,1,'Dropcaps & Alerts','',1366058517,1,1,0,0),(20,20,1,'Morbi ornare laoreet semper','',1366193601,1,2,0,0); +/*!40000 ALTER TABLE `node_revision` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `node_type` +-- Table structure for table `node_type` -- -CREATE TABLE IF NOT EXISTS `node_type` ( +DROP TABLE IF EXISTS `node_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `node_type` ( `type` varchar(32) NOT NULL COMMENT 'The machine-readable name of this type.', `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'The human-readable name of this type.', `base` varchar(255) NOT NULL COMMENT 'The base string used to construct callbacks corresponding to this node type.', @@ -2204,23 +1600,26 @@ CREATE TABLE IF NOT EXISTS `node_type` ( `orig_type` varchar(255) NOT NULL DEFAULT '' COMMENT 'The original machine-readable name of this node type. This may be different from the current type name if the locked field is 0.', PRIMARY KEY (`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores information about all defined node types.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `node_type` +-- Dumping data for table `node_type` -- -INSERT INTO `node_type` (`type`, `name`, `base`, `module`, `description`, `help`, `has_title`, `title_label`, `custom`, `modified`, `locked`, `disabled`, `orig_type`) VALUES -('article', 'Article', 'node_content', 'node', 'Use articles for time-sensitive content like news, press releases or blog posts.', '', 1, 'Title', 1, 1, 0, 0, 'article'), -('blog', 'Blog entry', 'blog', 'blog', 'Use for multi-user blogs. Every user gets a personal blog.', '', 1, 'Title', 0, 1, 1, 0, 'blog'), -('page', 'Basic page', 'node_content', 'node', 'Use basic pages for your static content, such as an ''About us'' page.', '', 1, 'Title', 1, 1, 0, 0, 'page'); - --- -------------------------------------------------------- +LOCK TABLES `node_type` WRITE; +/*!40000 ALTER TABLE `node_type` DISABLE KEYS */; +INSERT INTO `node_type` VALUES ('article','Article','node_content','node','Use articles for time-sensitive content like news, press releases or blog posts.','',1,'Title',1,1,0,0,'article'),('blog','Blog entry','blog','blog','Use for multi-user blogs. Every user gets a personal blog.','',1,'Title',0,1,1,0,'blog'),('page','Basic page','node_content','node','Use basic pages for your static content, such as an \'About us\' page.','',1,'Title',1,1,0,0,'page'); +/*!40000 ALTER TABLE `node_type` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `queue` +-- Table structure for table `queue` -- -CREATE TABLE IF NOT EXISTS `queue` ( +DROP TABLE IF EXISTS `queue`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `queue` ( `item_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique item ID.', `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'The queue name.', `data` longblob COMMENT 'The arbitrary data for the item.', @@ -2229,37 +1628,51 @@ CREATE TABLE IF NOT EXISTS `queue` ( PRIMARY KEY (`item_id`), KEY `name_created` (`name`,`created`), KEY `expire` (`expire`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores items in queues.' AUTO_INCREMENT=4 ; +) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='Stores items in queues.'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `queue` +-- + +LOCK TABLES `queue` WRITE; +/*!40000 ALTER TABLE `queue` DISABLE KEYS */; +/*!40000 ALTER TABLE `queue` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `rdf_mapping` +-- Table structure for table `rdf_mapping` -- -CREATE TABLE IF NOT EXISTS `rdf_mapping` ( +DROP TABLE IF EXISTS `rdf_mapping`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `rdf_mapping` ( `type` varchar(128) NOT NULL COMMENT 'The name of the entity type a mapping applies to (node, user, comment, etc.).', `bundle` varchar(128) NOT NULL COMMENT 'The name of the bundle a mapping applies to.', `mapping` longblob COMMENT 'The serialized mapping of the bundle type and fields to RDF terms.', PRIMARY KEY (`type`,`bundle`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores custom RDF mappings for user defined content types...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `rdf_mapping` +-- Dumping data for table `rdf_mapping` -- -INSERT INTO `rdf_mapping` (`type`, `bundle`, `mapping`) VALUES -('node', 'article', 0x613a31313a7b733a31313a226669656c645f696d616765223b613a323a7b733a31303a2270726564696361746573223b613a323a7b693a303b733a383a226f673a696d616765223b693a313b733a31323a22726466733a736565416c736f223b7d733a343a2274797065223b733a333a2272656c223b7d733a31303a226669656c645f74616773223b613a323a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31303a2264633a7375626a656374223b7d733a343a2274797065223b733a333a2272656c223b7d733a373a2272646674797065223b613a323a7b693a303b733a393a2273696f633a4974656d223b693a313b733a31333a22666f61663a446f63756d656e74223b7d733a353a227469746c65223b613a313a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a383a2264633a7469746c65223b7d7d733a373a2263726561746564223b613a333a7b733a31303a2270726564696361746573223b613a323a7b693a303b733a373a2264633a64617465223b693a313b733a31303a2264633a63726561746564223b7d733a383a226461746174797065223b733a31323a227873643a6461746554696d65223b733a383a2263616c6c6261636b223b733a31323a22646174655f69736f38363031223b7d733a373a226368616e676564223b613a333a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31313a2264633a6d6f646966696564223b7d733a383a226461746174797065223b733a31323a227873643a6461746554696d65223b733a383a2263616c6c6261636b223b733a31323a22646174655f69736f38363031223b7d733a343a22626f6479223b613a313a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31353a22636f6e74656e743a656e636f646564223b7d7d733a333a22756964223b613a323a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31363a2273696f633a6861735f63726561746f72223b7d733a343a2274797065223b733a333a2272656c223b7d733a343a226e616d65223b613a313a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a393a22666f61663a6e616d65223b7d7d733a31333a22636f6d6d656e745f636f756e74223b613a323a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31363a2273696f633a6e756d5f7265706c696573223b7d733a383a226461746174797065223b733a31313a227873643a696e7465676572223b7d733a31333a226c6173745f6163746976697479223b613a333a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a32333a2273696f633a6c6173745f61637469766974795f64617465223b7d733a383a226461746174797065223b733a31323a227873643a6461746554696d65223b733a383a2263616c6c6261636b223b733a31323a22646174655f69736f38363031223b7d7d), -('node', 'blog', 0x613a393a7b733a373a2272646674797065223b613a323a7b693a303b733a393a2273696f633a506f7374223b693a313b733a31343a2273696f63743a426c6f67506f7374223b7d733a353a227469746c65223b613a313a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a383a2264633a7469746c65223b7d7d733a373a2263726561746564223b613a333a7b733a31303a2270726564696361746573223b613a323a7b693a303b733a373a2264633a64617465223b693a313b733a31303a2264633a63726561746564223b7d733a383a226461746174797065223b733a31323a227873643a6461746554696d65223b733a383a2263616c6c6261636b223b733a31323a22646174655f69736f38363031223b7d733a373a226368616e676564223b613a333a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31313a2264633a6d6f646966696564223b7d733a383a226461746174797065223b733a31323a227873643a6461746554696d65223b733a383a2263616c6c6261636b223b733a31323a22646174655f69736f38363031223b7d733a343a22626f6479223b613a313a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31353a22636f6e74656e743a656e636f646564223b7d7d733a333a22756964223b613a323a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31363a2273696f633a6861735f63726561746f72223b7d733a343a2274797065223b733a333a2272656c223b7d733a343a226e616d65223b613a313a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a393a22666f61663a6e616d65223b7d7d733a31333a22636f6d6d656e745f636f756e74223b613a323a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31363a2273696f633a6e756d5f7265706c696573223b7d733a383a226461746174797065223b733a31313a227873643a696e7465676572223b7d733a31333a226c6173745f6163746976697479223b613a333a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a32333a2273696f633a6c6173745f61637469766974795f64617465223b7d733a383a226461746174797065223b733a31323a227873643a6461746554696d65223b733a383a2263616c6c6261636b223b733a31323a22646174655f69736f38363031223b7d7d), -('node', 'page', 0x613a393a7b733a373a2272646674797065223b613a313a7b693a303b733a31333a22666f61663a446f63756d656e74223b7d733a353a227469746c65223b613a313a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a383a2264633a7469746c65223b7d7d733a373a2263726561746564223b613a333a7b733a31303a2270726564696361746573223b613a323a7b693a303b733a373a2264633a64617465223b693a313b733a31303a2264633a63726561746564223b7d733a383a226461746174797065223b733a31323a227873643a6461746554696d65223b733a383a2263616c6c6261636b223b733a31323a22646174655f69736f38363031223b7d733a373a226368616e676564223b613a333a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31313a2264633a6d6f646966696564223b7d733a383a226461746174797065223b733a31323a227873643a6461746554696d65223b733a383a2263616c6c6261636b223b733a31323a22646174655f69736f38363031223b7d733a343a22626f6479223b613a313a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31353a22636f6e74656e743a656e636f646564223b7d7d733a333a22756964223b613a323a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31363a2273696f633a6861735f63726561746f72223b7d733a343a2274797065223b733a333a2272656c223b7d733a343a226e616d65223b613a313a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a393a22666f61663a6e616d65223b7d7d733a31333a22636f6d6d656e745f636f756e74223b613a323a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a31363a2273696f633a6e756d5f7265706c696573223b7d733a383a226461746174797065223b733a31313a227873643a696e7465676572223b7d733a31333a226c6173745f6163746976697479223b613a333a7b733a31303a2270726564696361746573223b613a313a7b693a303b733a32333a2273696f633a6c6173745f61637469766974795f64617465223b7d733a383a226461746174797065223b733a31323a227873643a6461746554696d65223b733a383a2263616c6c6261636b223b733a31323a22646174655f69736f38363031223b7d7d); - --- -------------------------------------------------------- +LOCK TABLES `rdf_mapping` WRITE; +/*!40000 ALTER TABLE `rdf_mapping` DISABLE KEYS */; +INSERT INTO `rdf_mapping` VALUES ('node','article','a:11:{s:11:\"field_image\";a:2:{s:10:\"predicates\";a:2:{i:0;s:8:\"og:image\";i:1;s:12:\"rdfs:seeAlso\";}s:4:\"type\";s:3:\"rel\";}s:10:\"field_tags\";a:2:{s:10:\"predicates\";a:1:{i:0;s:10:\"dc:subject\";}s:4:\"type\";s:3:\"rel\";}s:7:\"rdftype\";a:2:{i:0;s:9:\"sioc:Item\";i:1;s:13:\"foaf:Document\";}s:5:\"title\";a:1:{s:10:\"predicates\";a:1:{i:0;s:8:\"dc:title\";}}s:7:\"created\";a:3:{s:10:\"predicates\";a:2:{i:0;s:7:\"dc:date\";i:1;s:10:\"dc:created\";}s:8:\"datatype\";s:12:\"xsd:dateTime\";s:8:\"callback\";s:12:\"date_iso8601\";}s:7:\"changed\";a:3:{s:10:\"predicates\";a:1:{i:0;s:11:\"dc:modified\";}s:8:\"datatype\";s:12:\"xsd:dateTime\";s:8:\"callback\";s:12:\"date_iso8601\";}s:4:\"body\";a:1:{s:10:\"predicates\";a:1:{i:0;s:15:\"content:encoded\";}}s:3:\"uid\";a:2:{s:10:\"predicates\";a:1:{i:0;s:16:\"sioc:has_creator\";}s:4:\"type\";s:3:\"rel\";}s:4:\"name\";a:1:{s:10:\"predicates\";a:1:{i:0;s:9:\"foaf:name\";}}s:13:\"comment_count\";a:2:{s:10:\"predicates\";a:1:{i:0;s:16:\"sioc:num_replies\";}s:8:\"datatype\";s:11:\"xsd:integer\";}s:13:\"last_activity\";a:3:{s:10:\"predicates\";a:1:{i:0;s:23:\"sioc:last_activity_date\";}s:8:\"datatype\";s:12:\"xsd:dateTime\";s:8:\"callback\";s:12:\"date_iso8601\";}}'),('node','blog','a:9:{s:7:\"rdftype\";a:2:{i:0;s:9:\"sioc:Post\";i:1;s:14:\"sioct:BlogPost\";}s:5:\"title\";a:1:{s:10:\"predicates\";a:1:{i:0;s:8:\"dc:title\";}}s:7:\"created\";a:3:{s:10:\"predicates\";a:2:{i:0;s:7:\"dc:date\";i:1;s:10:\"dc:created\";}s:8:\"datatype\";s:12:\"xsd:dateTime\";s:8:\"callback\";s:12:\"date_iso8601\";}s:7:\"changed\";a:3:{s:10:\"predicates\";a:1:{i:0;s:11:\"dc:modified\";}s:8:\"datatype\";s:12:\"xsd:dateTime\";s:8:\"callback\";s:12:\"date_iso8601\";}s:4:\"body\";a:1:{s:10:\"predicates\";a:1:{i:0;s:15:\"content:encoded\";}}s:3:\"uid\";a:2:{s:10:\"predicates\";a:1:{i:0;s:16:\"sioc:has_creator\";}s:4:\"type\";s:3:\"rel\";}s:4:\"name\";a:1:{s:10:\"predicates\";a:1:{i:0;s:9:\"foaf:name\";}}s:13:\"comment_count\";a:2:{s:10:\"predicates\";a:1:{i:0;s:16:\"sioc:num_replies\";}s:8:\"datatype\";s:11:\"xsd:integer\";}s:13:\"last_activity\";a:3:{s:10:\"predicates\";a:1:{i:0;s:23:\"sioc:last_activity_date\";}s:8:\"datatype\";s:12:\"xsd:dateTime\";s:8:\"callback\";s:12:\"date_iso8601\";}}'),('node','page','a:9:{s:7:\"rdftype\";a:1:{i:0;s:13:\"foaf:Document\";}s:5:\"title\";a:1:{s:10:\"predicates\";a:1:{i:0;s:8:\"dc:title\";}}s:7:\"created\";a:3:{s:10:\"predicates\";a:2:{i:0;s:7:\"dc:date\";i:1;s:10:\"dc:created\";}s:8:\"datatype\";s:12:\"xsd:dateTime\";s:8:\"callback\";s:12:\"date_iso8601\";}s:7:\"changed\";a:3:{s:10:\"predicates\";a:1:{i:0;s:11:\"dc:modified\";}s:8:\"datatype\";s:12:\"xsd:dateTime\";s:8:\"callback\";s:12:\"date_iso8601\";}s:4:\"body\";a:1:{s:10:\"predicates\";a:1:{i:0;s:15:\"content:encoded\";}}s:3:\"uid\";a:2:{s:10:\"predicates\";a:1:{i:0;s:16:\"sioc:has_creator\";}s:4:\"type\";s:3:\"rel\";}s:4:\"name\";a:1:{s:10:\"predicates\";a:1:{i:0;s:9:\"foaf:name\";}}s:13:\"comment_count\";a:2:{s:10:\"predicates\";a:1:{i:0;s:16:\"sioc:num_replies\";}s:8:\"datatype\";s:11:\"xsd:integer\";}s:13:\"last_activity\";a:3:{s:10:\"predicates\";a:1:{i:0;s:23:\"sioc:last_activity_date\";}s:8:\"datatype\";s:12:\"xsd:dateTime\";s:8:\"callback\";s:12:\"date_iso8601\";}}'); +/*!40000 ALTER TABLE `rdf_mapping` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `registry` +-- Table structure for table `registry` -- -CREATE TABLE IF NOT EXISTS `registry` ( +DROP TABLE IF EXISTS `registry`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `registry` ( `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'The name of the function, class, or interface.', `type` varchar(9) NOT NULL DEFAULT '' COMMENT 'Either function or class or interface.', `filename` varchar(255) NOT NULL COMMENT 'Name of the file.', @@ -2268,665 +1681,128 @@ CREATE TABLE IF NOT EXISTS `registry` ( PRIMARY KEY (`name`,`type`), KEY `hook` (`type`,`weight`,`module`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Each record is a function, class, or interface name and...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `registry` --- - -INSERT INTO `registry` (`name`, `type`, `filename`, `module`, `weight`) VALUES -('AccessDeniedTestCase', 'class', 'modules/system/system.test', 'system', 0), -('AdminMetaTagTestCase', 'class', 'modules/system/system.test', 'system', 0), -('ArchiverInterface', 'interface', 'includes/archiver.inc', '', 0), -('ArchiverTar', 'class', 'modules/system/system.archiver.inc', 'system', 0), -('ArchiverZip', 'class', 'modules/system/system.archiver.inc', 'system', 0), -('Archive_Tar', 'class', 'modules/system/system.tar.inc', 'system', 0), -('BatchMemoryQueue', 'class', 'includes/batch.queue.inc', '', 0), -('BatchQueue', 'class', 'includes/batch.queue.inc', '', 0), -('BlockAdminThemeTestCase', 'class', 'modules/block/block.test', 'block', -5), -('BlockCacheTestCase', 'class', 'modules/block/block.test', 'block', -5), -('BlockHiddenRegionTestCase', 'class', 'modules/block/block.test', 'block', -5), -('BlockHTMLIdTestCase', 'class', 'modules/block/block.test', 'block', -5), -('BlockInvalidRegionTestCase', 'class', 'modules/block/block.test', 'block', -5), -('BlockTemplateSuggestionsUnitTest', 'class', 'modules/block/block.test', 'block', -5), -('BlockTestCase', 'class', 'modules/block/block.test', 'block', -5), -('BlogTestCase', 'class', 'modules/blog/blog.test', 'blog', 0), -('ColorTestCase', 'class', 'modules/color/color.test', 'color', 0), -('CommentActionsTestCase', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentAnonymous', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentApprovalTest', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentBlockFunctionalTest', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentContentRebuild', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentController', 'class', 'modules/comment/comment.module', 'comment', 0), -('CommentFieldsTest', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentHelperCase', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentInterfaceTest', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentNodeAccessTest', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentNodeChangesTestCase', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentPagerTest', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentPreviewTest', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentRSSUnitTest', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentThreadingTestCase', 'class', 'modules/comment/comment.test', 'comment', 0), -('CommentTokenReplaceTestCase', 'class', 'modules/comment/comment.test', 'comment', 0), -('ContactPersonalTestCase', 'class', 'modules/contact/contact.test', 'contact', 0), -('ContactSitewideTestCase', 'class', 'modules/contact/contact.test', 'contact', 0), -('ContextualDynamicContextTestCase', 'class', 'modules/contextual/contextual.test', 'contextual', 0), -('CronRunTestCase', 'class', 'modules/system/system.test', 'system', 0), -('DashboardBlocksTestCase', 'class', 'modules/dashboard/dashboard.test', 'dashboard', 0), -('Database', 'class', 'includes/database/database.inc', '', 0), -('DatabaseCondition', 'class', 'includes/database/query.inc', '', 0), -('DatabaseConnection', 'class', 'includes/database/database.inc', '', 0), -('DatabaseConnectionNotDefinedException', 'class', 'includes/database/database.inc', '', 0), -('DatabaseConnection_mysql', 'class', 'includes/database/mysql/database.inc', '', 0), -('DatabaseConnection_pgsql', 'class', 'includes/database/pgsql/database.inc', '', 0), -('DatabaseConnection_sqlite', 'class', 'includes/database/sqlite/database.inc', '', 0), -('DatabaseDriverNotSpecifiedException', 'class', 'includes/database/database.inc', '', 0), -('DatabaseLog', 'class', 'includes/database/log.inc', '', 0), -('DatabaseSchema', 'class', 'includes/database/schema.inc', '', 0), -('DatabaseSchemaObjectDoesNotExistException', 'class', 'includes/database/schema.inc', '', 0), -('DatabaseSchemaObjectExistsException', 'class', 'includes/database/schema.inc', '', 0), -('DatabaseSchema_mysql', 'class', 'includes/database/mysql/schema.inc', '', 0), -('DatabaseSchema_pgsql', 'class', 'includes/database/pgsql/schema.inc', '', 0), -('DatabaseSchema_sqlite', 'class', 'includes/database/sqlite/schema.inc', '', 0), -('DatabaseStatementBase', 'class', 'includes/database/database.inc', '', 0), -('DatabaseStatementEmpty', 'class', 'includes/database/database.inc', '', 0), -('DatabaseStatementInterface', 'interface', 'includes/database/database.inc', '', 0), -('DatabaseStatementPrefetch', 'class', 'includes/database/prefetch.inc', '', 0), -('DatabaseStatement_sqlite', 'class', 'includes/database/sqlite/database.inc', '', 0), -('DatabaseTaskException', 'class', 'includes/install.inc', '', 0), -('DatabaseTasks', 'class', 'includes/install.inc', '', 0), -('DatabaseTasks_mysql', 'class', 'includes/database/mysql/install.inc', '', 0), -('DatabaseTasks_pgsql', 'class', 'includes/database/pgsql/install.inc', '', 0), -('DatabaseTasks_sqlite', 'class', 'includes/database/sqlite/install.inc', '', 0), -('DatabaseTransaction', 'class', 'includes/database/database.inc', '', 0), -('DatabaseTransactionCommitFailedException', 'class', 'includes/database/database.inc', '', 0), -('DatabaseTransactionExplicitCommitNotAllowedException', 'class', 'includes/database/database.inc', '', 0), -('DatabaseTransactionNameNonUniqueException', 'class', 'includes/database/database.inc', '', 0), -('DatabaseTransactionNoActiveException', 'class', 'includes/database/database.inc', '', 0), -('DatabaseTransactionOutOfOrderException', 'class', 'includes/database/database.inc', '', 0), -('DateTimeFunctionalTest', 'class', 'modules/system/system.test', 'system', 0), -('DBLogTestCase', 'class', 'modules/dblog/dblog.test', 'dblog', 0), -('DefaultMailSystem', 'class', 'modules/system/system.mail.inc', 'system', 0), -('DeleteQuery', 'class', 'includes/database/query.inc', '', 0), -('DeleteQuery_sqlite', 'class', 'includes/database/sqlite/query.inc', '', 0), -('DrupalCacheArray', 'class', 'includes/bootstrap.inc', '', 0), -('DrupalCacheInterface', 'interface', 'includes/cache.inc', '', 0), -('DrupalDatabaseCache', 'class', 'includes/cache.inc', '', 0), -('DrupalDefaultEntityController', 'class', 'includes/entity.inc', '', 0), -('DrupalEntityControllerInterface', 'interface', 'includes/entity.inc', '', 0), -('DrupalFakeCache', 'class', 'includes/cache-install.inc', '', 0), -('DrupalLocalStreamWrapper', 'class', 'includes/stream_wrappers.inc', '', 0), -('DrupalPrivateStreamWrapper', 'class', 'includes/stream_wrappers.inc', '', 0), -('DrupalPublicStreamWrapper', 'class', 'includes/stream_wrappers.inc', '', 0), -('DrupalQueue', 'class', 'modules/system/system.queue.inc', 'system', 0), -('DrupalQueueInterface', 'interface', 'modules/system/system.queue.inc', 'system', 0), -('DrupalReliableQueueInterface', 'interface', 'modules/system/system.queue.inc', 'system', 0), -('DrupalStreamWrapperInterface', 'interface', 'includes/stream_wrappers.inc', '', 0), -('DrupalTemporaryStreamWrapper', 'class', 'includes/stream_wrappers.inc', '', 0), -('DrupalUpdateException', 'class', 'includes/update.inc', '', 0), -('DrupalUpdaterInterface', 'interface', 'includes/updater.inc', '', 0), -('EnableDisableTestCase', 'class', 'modules/system/system.test', 'system', 0), -('EntityFieldQuery', 'class', 'includes/entity.inc', '', 0), -('EntityFieldQueryException', 'class', 'includes/entity.inc', '', 0), -('EntityMalformedException', 'class', 'includes/entity.inc', '', 0), -('EntityPropertiesTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldAttachOtherTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldAttachStorageTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldAttachTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldBulkDeleteTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldCrudTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldDisplayAPITestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldException', 'class', 'modules/field/field.module', 'field', 0), -('FieldFormTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldInfo', 'class', 'modules/field/field.info.class.inc', 'field', 0), -('FieldInfoTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldInstanceCrudTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldsOverlapException', 'class', 'includes/database/database.inc', '', 0), -('FieldSqlStorageTestCase', 'class', 'modules/field/modules/field_sql_storage/field_sql_storage.test', 'field_sql_storage', 0), -('FieldTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldTranslationsTestCase', 'class', 'modules/field/tests/field.test', 'field', 0), -('FieldUIAlterTestCase', 'class', 'modules/field_ui/field_ui.test', 'field_ui', 0), -('FieldUIManageDisplayTestCase', 'class', 'modules/field_ui/field_ui.test', 'field_ui', 0), -('FieldUIManageFieldsTestCase', 'class', 'modules/field_ui/field_ui.test', 'field_ui', 0), -('FieldUITestCase', 'class', 'modules/field_ui/field_ui.test', 'field_ui', 0), -('FieldUpdateForbiddenException', 'class', 'modules/field/field.module', 'field', 0), -('FieldValidationException', 'class', 'modules/field/field.attach.inc', 'field', 0), -('FileFieldDisplayTestCase', 'class', 'modules/file/tests/file.test', 'file', 0), -('FileFieldPathTestCase', 'class', 'modules/file/tests/file.test', 'file', 0), -('FileFieldRevisionTestCase', 'class', 'modules/file/tests/file.test', 'file', 0), -('FileFieldTestCase', 'class', 'modules/file/tests/file.test', 'file', 0), -('FileFieldValidateTestCase', 'class', 'modules/file/tests/file.test', 'file', 0), -('FileFieldWidgetTestCase', 'class', 'modules/file/tests/file.test', 'file', 0), -('FileManagedFileElementTestCase', 'class', 'modules/file/tests/file.test', 'file', 0), -('FilePrivateTestCase', 'class', 'modules/file/tests/file.test', 'file', 0), -('FileTokenReplaceTestCase', 'class', 'modules/file/tests/file.test', 'file', 0), -('FileTransfer', 'class', 'includes/filetransfer/filetransfer.inc', '', 0), -('FileTransferChmodInterface', 'interface', 'includes/filetransfer/filetransfer.inc', '', 0), -('FileTransferException', 'class', 'includes/filetransfer/filetransfer.inc', '', 0), -('FileTransferFTP', 'class', 'includes/filetransfer/ftp.inc', '', 0), -('FileTransferFTPExtension', 'class', 'includes/filetransfer/ftp.inc', '', 0), -('FileTransferLocal', 'class', 'includes/filetransfer/local.inc', '', 0), -('FileTransferSSH', 'class', 'includes/filetransfer/ssh.inc', '', 0), -('FilterAdminTestCase', 'class', 'modules/filter/filter.test', 'filter', 0), -('FilterCRUDTestCase', 'class', 'modules/filter/filter.test', 'filter', 0), -('FilterDefaultFormatTestCase', 'class', 'modules/filter/filter.test', 'filter', 0), -('FilterFormatAccessTestCase', 'class', 'modules/filter/filter.test', 'filter', 0), -('FilterHooksTestCase', 'class', 'modules/filter/filter.test', 'filter', 0), -('FilterNoFormatTestCase', 'class', 'modules/filter/filter.test', 'filter', 0), -('FilterSecurityTestCase', 'class', 'modules/filter/filter.test', 'filter', 0), -('FilterSettingsTestCase', 'class', 'modules/filter/filter.test', 'filter', 0), -('FilterUnitTestCase', 'class', 'modules/filter/filter.test', 'filter', 0), -('FloodFunctionalTest', 'class', 'modules/system/system.test', 'system', 0), -('FrontPageTestCase', 'class', 'modules/system/system.test', 'system', 0), -('HelpTestCase', 'class', 'modules/help/help.test', 'help', 0), -('HookRequirementsTestCase', 'class', 'modules/system/system.test', 'system', 0), -('ImageAdminStylesUnitTest', 'class', 'modules/image/image.test', 'image', 0), -('ImageDimensionsScaleTestCase', 'class', 'modules/image/image.test', 'image', 0), -('ImageDimensionsTestCase', 'class', 'modules/image/image.test', 'image', 0), -('ImageEffectsUnitTest', 'class', 'modules/image/image.test', 'image', 0), -('ImageFieldDefaultImagesTestCase', 'class', 'modules/image/image.test', 'image', 0), -('ImageFieldDisplayTestCase', 'class', 'modules/image/image.test', 'image', 0), -('ImageFieldTestCase', 'class', 'modules/image/image.test', 'image', 0), -('ImageFieldValidateTestCase', 'class', 'modules/image/image.test', 'image', 0), -('ImageStyleFlushTest', 'class', 'modules/image/image.test', 'image', 0), -('ImageStylesPathAndUrlTestCase', 'class', 'modules/image/image.test', 'image', 0), -('ImageThemeFunctionWebTestCase', 'class', 'modules/image/image.test', 'image', 0), -('InfoFileParserTestCase', 'class', 'modules/system/system.test', 'system', 0), -('InsertQuery', 'class', 'includes/database/query.inc', '', 0), -('InsertQuery_mysql', 'class', 'includes/database/mysql/query.inc', '', 0), -('InsertQuery_pgsql', 'class', 'includes/database/pgsql/query.inc', '', 0), -('InsertQuery_sqlite', 'class', 'includes/database/sqlite/query.inc', '', 0), -('InvalidMergeQueryException', 'class', 'includes/database/database.inc', '', 0), -('IPAddressBlockingTestCase', 'class', 'modules/system/system.test', 'system', 0), -('LibrariesTestCase', 'class', 'sites/all/modules/libraries/tests/libraries.test', 'libraries', 0), -('LibrariesUnitTestCase', 'class', 'sites/all/modules/libraries/tests/libraries.test', 'libraries', 0), -('ListDynamicValuesTestCase', 'class', 'modules/field/modules/list/tests/list.test', 'list', 0), -('ListDynamicValuesValidationTestCase', 'class', 'modules/field/modules/list/tests/list.test', 'list', 0), -('ListFieldTestCase', 'class', 'modules/field/modules/list/tests/list.test', 'list', 0), -('ListFieldUITestCase', 'class', 'modules/field/modules/list/tests/list.test', 'list', 0), -('MailSystemInterface', 'interface', 'includes/mail.inc', '', 0), -('MemoryQueue', 'class', 'modules/system/system.queue.inc', 'system', 0), -('MenuNodeTestCase', 'class', 'modules/menu/menu.test', 'menu', 0), -('MenuTestCase', 'class', 'modules/menu/menu.test', 'menu', 0), -('MergeQuery', 'class', 'includes/database/query.inc', '', 0), -('ModuleDependencyTestCase', 'class', 'modules/system/system.test', 'system', 0), -('ModuleRequiredTestCase', 'class', 'modules/system/system.test', 'system', 0), -('ModuleTestCase', 'class', 'modules/system/system.test', 'system', 0), -('ModuleUpdater', 'class', 'modules/system/system.updater.inc', 'system', 0), -('ModuleVersionTestCase', 'class', 'modules/system/system.test', 'system', 0), -('MultiStepNodeFormBasicOptionsTest', 'class', 'modules/node/node.test', 'node', 0), -('NewDefaultThemeBlocks', 'class', 'modules/block/block.test', 'block', -5), -('NodeAccessBaseTableTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeAccessFieldTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeAccessPagerTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeAccessRebuildTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeAccessRecordsTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeAccessTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeAdminTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeBlockFunctionalTest', 'class', 'modules/node/node.test', 'node', 0), -('NodeBlockTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeBuildContent', 'class', 'modules/node/node.test', 'node', 0), -('NodeController', 'class', 'modules/node/node.module', 'node', 0), -('NodeCreationTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeEntityFieldQueryAlter', 'class', 'modules/node/node.test', 'node', 0), -('NodeEntityViewModeAlterTest', 'class', 'modules/node/node.test', 'node', 0), -('NodeFeedTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeLoadHooksTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeLoadMultipleTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodePostSettingsTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeQueryAlter', 'class', 'modules/node/node.test', 'node', 0), -('NodeRevisionPermissionsTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeRevisionsTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeRSSContentTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeSaveTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeTitleTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeTitleXSSTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeTokenReplaceTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeTypePersistenceTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeTypeTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NodeWebTestCase', 'class', 'modules/node/node.test', 'node', 0), -('NoFieldsException', 'class', 'includes/database/database.inc', '', 0), -('NoHelpTestCase', 'class', 'modules/help/help.test', 'help', 0), -('NonDefaultBlockAdmin', 'class', 'modules/block/block.test', 'block', -5), -('NumberFieldTestCase', 'class', 'modules/field/modules/number/number.test', 'number', 0), -('OptionsSelectDynamicValuesTestCase', 'class', 'modules/field/modules/options/options.test', 'options', 0), -('OptionsWidgetsTestCase', 'class', 'modules/field/modules/options/options.test', 'options', 0), -('PageEditTestCase', 'class', 'modules/node/node.test', 'node', 0), -('PageNotFoundTestCase', 'class', 'modules/system/system.test', 'system', 0), -('PagePreviewTestCase', 'class', 'modules/node/node.test', 'node', 0), -('PagerDefault', 'class', 'includes/pager.inc', '', 0), -('PageTitleFiltering', 'class', 'modules/system/system.test', 'system', 0), -('PageViewTestCase', 'class', 'modules/node/node.test', 'node', 0), -('PathLanguageTestCase', 'class', 'modules/path/path.test', 'path', 0), -('PathLanguageUITestCase', 'class', 'modules/path/path.test', 'path', 0), -('PathMonolingualTestCase', 'class', 'modules/path/path.test', 'path', 0), -('PathTaxonomyTermTestCase', 'class', 'modules/path/path.test', 'path', 0), -('PathTestCase', 'class', 'modules/path/path.test', 'path', 0), -('PHPAccessTestCase', 'class', 'modules/php/php.test', 'php', 0), -('PHPFilterTestCase', 'class', 'modules/php/php.test', 'php', 0), -('PHPTestCase', 'class', 'modules/php/php.test', 'php', 0), -('Query', 'class', 'includes/database/query.inc', '', 0), -('QueryAlterableInterface', 'interface', 'includes/database/query.inc', '', 0), -('QueryConditionInterface', 'interface', 'includes/database/query.inc', '', 0), -('QueryExtendableInterface', 'interface', 'includes/database/select.inc', '', 0), -('QueryPlaceholderInterface', 'interface', 'includes/database/query.inc', '', 0), -('QueueTestCase', 'class', 'modules/system/system.test', 'system', 0), -('RdfCommentAttributesTestCase', 'class', 'modules/rdf/rdf.test', 'rdf', 0), -('RdfCrudTestCase', 'class', 'modules/rdf/rdf.test', 'rdf', 0), -('RdfGetRdfNamespacesTestCase', 'class', 'modules/rdf/rdf.test', 'rdf', 0), -('RdfMappingDefinitionTestCase', 'class', 'modules/rdf/rdf.test', 'rdf', 0), -('RdfMappingHookTestCase', 'class', 'modules/rdf/rdf.test', 'rdf', 0), -('RdfRdfaMarkupTestCase', 'class', 'modules/rdf/rdf.test', 'rdf', 0), -('RdfTrackerAttributesTestCase', 'class', 'modules/rdf/rdf.test', 'rdf', 0), -('RetrieveFileTestCase', 'class', 'modules/system/system.test', 'system', 0), -('SchemaCache', 'class', 'includes/bootstrap.inc', '', 0), -('SearchAdvancedSearchForm', 'class', 'modules/search/search.test', 'search', 0), -('SearchBlockTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchCommentCountToggleTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchCommentTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchConfigSettingsForm', 'class', 'modules/search/search.test', 'search', 0), -('SearchEmbedForm', 'class', 'modules/search/search.test', 'search', 0), -('SearchExactTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchExcerptTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchExpressionInsertExtractTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchKeywordsConditions', 'class', 'modules/search/search.test', 'search', 0), -('SearchLanguageTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchMatchTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchNodeAccessTest', 'class', 'modules/search/search.test', 'search', 0), -('SearchNumberMatchingTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchNumbersTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchPageOverride', 'class', 'modules/search/search.test', 'search', 0), -('SearchPageText', 'class', 'modules/search/search.test', 'search', 0), -('SearchQuery', 'class', 'modules/search/search.extender.inc', 'search', 0), -('SearchRankingTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchSimplifyTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SearchTokenizerTestCase', 'class', 'modules/search/search.test', 'search', 0), -('SelectQuery', 'class', 'includes/database/select.inc', '', 0), -('SelectQueryExtender', 'class', 'includes/database/select.inc', '', 0), -('SelectQueryInterface', 'interface', 'includes/database/select.inc', '', 0), -('SelectQuery_pgsql', 'class', 'includes/database/pgsql/select.inc', '', 0), -('SelectQuery_sqlite', 'class', 'includes/database/sqlite/select.inc', '', 0), -('ShortcutLinksTestCase', 'class', 'modules/shortcut/shortcut.test', 'shortcut', 0), -('ShortcutSetsTestCase', 'class', 'modules/shortcut/shortcut.test', 'shortcut', 0), -('ShortcutTestCase', 'class', 'modules/shortcut/shortcut.test', 'shortcut', 0), -('ShutdownFunctionsTest', 'class', 'modules/system/system.test', 'system', 0), -('SiteMaintenanceTestCase', 'class', 'modules/system/system.test', 'system', 0), -('SkipDotsRecursiveDirectoryIterator', 'class', 'includes/filetransfer/filetransfer.inc', '', 0), -('StreamWrapperInterface', 'interface', 'includes/stream_wrappers.inc', '', 0), -('SummaryLengthTestCase', 'class', 'modules/node/node.test', 'node', 0), -('SystemAdminTestCase', 'class', 'modules/system/system.test', 'system', 0), -('SystemAuthorizeCase', 'class', 'modules/system/system.test', 'system', 0), -('SystemBlockTestCase', 'class', 'modules/system/system.test', 'system', 0), -('SystemIndexPhpTest', 'class', 'modules/system/system.test', 'system', 0), -('SystemInfoAlterTestCase', 'class', 'modules/system/system.test', 'system', 0), -('SystemMainContentFallback', 'class', 'modules/system/system.test', 'system', 0), -('SystemQueue', 'class', 'modules/system/system.queue.inc', 'system', 0), -('SystemThemeFunctionalTest', 'class', 'modules/system/system.test', 'system', 0), -('TableSort', 'class', 'includes/tablesort.inc', '', 0), -('TaxonomyEFQTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyHooksTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyLegacyTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyLoadMultipleTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyRSSTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyTermController', 'class', 'modules/taxonomy/taxonomy.module', 'taxonomy', 0), -('TaxonomyTermFieldMultipleVocabularyTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyTermFieldTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyTermFunctionTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyTermIndexTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyTermTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyThemeTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyTokenReplaceTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyVocabularyController', 'class', 'modules/taxonomy/taxonomy.module', 'taxonomy', 0), -('TaxonomyVocabularyFunctionalTest', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyVocabularyTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TaxonomyWebTestCase', 'class', 'modules/taxonomy/taxonomy.test', 'taxonomy', 0), -('TestingMailSystem', 'class', 'modules/system/system.mail.inc', 'system', 0), -('TextFieldTestCase', 'class', 'modules/field/modules/text/text.test', 'text', 0), -('TextSummaryTestCase', 'class', 'modules/field/modules/text/text.test', 'text', 0), -('TextTranslationTestCase', 'class', 'modules/field/modules/text/text.test', 'text', 0), -('ThemeRegistry', 'class', 'includes/theme.inc', '', 0), -('ThemeUpdater', 'class', 'modules/system/system.updater.inc', 'system', 0), -('TokenReplaceTestCase', 'class', 'modules/system/system.test', 'system', 0), -('TokenScanTest', 'class', 'modules/system/system.test', 'system', 0), -('TruncateQuery', 'class', 'includes/database/query.inc', '', 0), -('TruncateQuery_mysql', 'class', 'includes/database/mysql/query.inc', '', 0), -('TruncateQuery_sqlite', 'class', 'includes/database/sqlite/query.inc', '', 0), -('UpdateCoreTestCase', 'class', 'modules/update/update.test', 'update', 0), -('UpdateCoreUnitTestCase', 'class', 'modules/update/update.test', 'update', 0), -('UpdateQuery', 'class', 'includes/database/query.inc', '', 0), -('UpdateQuery_pgsql', 'class', 'includes/database/pgsql/query.inc', '', 0), -('UpdateQuery_sqlite', 'class', 'includes/database/sqlite/query.inc', '', 0), -('Updater', 'class', 'includes/updater.inc', '', 0), -('UpdaterException', 'class', 'includes/updater.inc', '', 0), -('UpdaterFileTransferException', 'class', 'includes/updater.inc', '', 0), -('UpdateScriptFunctionalTest', 'class', 'modules/system/system.test', 'system', 0), -('UpdateTestContribCase', 'class', 'modules/update/update.test', 'update', 0), -('UpdateTestHelper', 'class', 'modules/update/update.test', 'update', 0), -('UpdateTestUploadCase', 'class', 'modules/update/update.test', 'update', 0), -('UserAccountLinksUnitTests', 'class', 'modules/user/user.test', 'user', 0), -('UserAdminTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserAuthmapAssignmentTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserAutocompleteTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserBlocksUnitTests', 'class', 'modules/user/user.test', 'user', 0), -('UserCancelTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserController', 'class', 'modules/user/user.module', 'user', 0), -('UserCreateTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserEditedOwnAccountTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserEditTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserLoginTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserPasswordResetTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserPermissionsTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserPictureTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserRegistrationTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserRoleAdminTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserRolesAssignmentTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserSaveTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserSignatureTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserTimeZoneFunctionalTest', 'class', 'modules/user/user.test', 'user', 0), -('UserTokenReplaceTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserUserSearchTestCase', 'class', 'modules/user/user.test', 'user', 0), -('UserValidateCurrentPassCustomForm', 'class', 'modules/user/user.test', 'user', 0), -('UserValidationTestCase', 'class', 'modules/user/user.test', 'user', 0); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `registry_file` --- - -CREATE TABLE IF NOT EXISTS `registry_file` ( +-- Dumping data for table `registry` +-- + +LOCK TABLES `registry` WRITE; +/*!40000 ALTER TABLE `registry` DISABLE KEYS */; +INSERT INTO `registry` VALUES ('AccessDeniedTestCase','class','modules/system/system.test','system',0),('AdminMetaTagTestCase','class','modules/system/system.test','system',0),('ArchiverInterface','interface','includes/archiver.inc','',0),('ArchiverTar','class','modules/system/system.archiver.inc','system',0),('ArchiverZip','class','modules/system/system.archiver.inc','system',0),('Archive_Tar','class','modules/system/system.tar.inc','system',0),('BatchMemoryQueue','class','includes/batch.queue.inc','',0),('BatchQueue','class','includes/batch.queue.inc','',0),('BlockAdminThemeTestCase','class','modules/block/block.test','block',-5),('BlockCacheTestCase','class','modules/block/block.test','block',-5),('BlockHashTestCase','class','modules/block/block.test','block',-5),('BlockHiddenRegionTestCase','class','modules/block/block.test','block',-5),('BlockHTMLIdTestCase','class','modules/block/block.test','block',-5),('BlockInvalidRegionTestCase','class','modules/block/block.test','block',-5),('BlockTemplateSuggestionsUnitTest','class','modules/block/block.test','block',-5),('BlockTestCase','class','modules/block/block.test','block',-5),('BlockViewModuleDeltaAlterWebTest','class','modules/block/block.test','block',-5),('BlogTestCase','class','modules/blog/blog.test','blog',0),('ColorTestCase','class','modules/color/color.test','color',0),('CommentActionsTestCase','class','modules/comment/comment.test','comment',0),('CommentAnonymous','class','modules/comment/comment.test','comment',0),('CommentApprovalTest','class','modules/comment/comment.test','comment',0),('CommentBlockFunctionalTest','class','modules/comment/comment.test','comment',0),('CommentContentRebuild','class','modules/comment/comment.test','comment',0),('CommentController','class','modules/comment/comment.module','comment',0),('CommentFieldsTest','class','modules/comment/comment.test','comment',0),('CommentHelperCase','class','modules/comment/comment.test','comment',0),('CommentInterfaceTest','class','modules/comment/comment.test','comment',0),('CommentNodeAccessTest','class','modules/comment/comment.test','comment',0),('CommentNodeChangesTestCase','class','modules/comment/comment.test','comment',0),('CommentPagerTest','class','modules/comment/comment.test','comment',0),('CommentPreviewTest','class','modules/comment/comment.test','comment',0),('CommentRSSUnitTest','class','modules/comment/comment.test','comment',0),('CommentThreadingTestCase','class','modules/comment/comment.test','comment',0),('CommentTokenReplaceTestCase','class','modules/comment/comment.test','comment',0),('ConfirmFormTest','class','modules/system/system.test','system',0),('ContactPersonalTestCase','class','modules/contact/contact.test','contact',0),('ContactSitewideTestCase','class','modules/contact/contact.test','contact',0),('ContextualDynamicContextTestCase','class','modules/contextual/contextual.test','contextual',0),('CronQueueTestCase','class','modules/system/system.test','system',0),('CronRunTestCase','class','modules/system/system.test','system',0),('DashboardBlocksTestCase','class','modules/dashboard/dashboard.test','dashboard',0),('Database','class','includes/database/database.inc','',0),('DatabaseCondition','class','includes/database/query.inc','',0),('DatabaseConnection','class','includes/database/database.inc','',0),('DatabaseConnectionNotDefinedException','class','includes/database/database.inc','',0),('DatabaseConnection_mysql','class','includes/database/mysql/database.inc','',0),('DatabaseConnection_pgsql','class','includes/database/pgsql/database.inc','',0),('DatabaseConnection_sqlite','class','includes/database/sqlite/database.inc','',0),('DatabaseDriverNotSpecifiedException','class','includes/database/database.inc','',0),('DatabaseLog','class','includes/database/log.inc','',0),('DatabaseSchema','class','includes/database/schema.inc','',0),('DatabaseSchemaObjectDoesNotExistException','class','includes/database/schema.inc','',0),('DatabaseSchemaObjectExistsException','class','includes/database/schema.inc','',0),('DatabaseSchema_mysql','class','includes/database/mysql/schema.inc','',0),('DatabaseSchema_pgsql','class','includes/database/pgsql/schema.inc','',0),('DatabaseSchema_sqlite','class','includes/database/sqlite/schema.inc','',0),('DatabaseStatementBase','class','includes/database/database.inc','',0),('DatabaseStatementEmpty','class','includes/database/database.inc','',0),('DatabaseStatementInterface','interface','includes/database/database.inc','',0),('DatabaseStatementPrefetch','class','includes/database/prefetch.inc','',0),('DatabaseStatement_sqlite','class','includes/database/sqlite/database.inc','',0),('DatabaseTaskException','class','includes/install.inc','',0),('DatabaseTasks','class','includes/install.inc','',0),('DatabaseTasks_mysql','class','includes/database/mysql/install.inc','',0),('DatabaseTasks_pgsql','class','includes/database/pgsql/install.inc','',0),('DatabaseTasks_sqlite','class','includes/database/sqlite/install.inc','',0),('DatabaseTransaction','class','includes/database/database.inc','',0),('DatabaseTransactionCommitFailedException','class','includes/database/database.inc','',0),('DatabaseTransactionExplicitCommitNotAllowedException','class','includes/database/database.inc','',0),('DatabaseTransactionNameNonUniqueException','class','includes/database/database.inc','',0),('DatabaseTransactionNoActiveException','class','includes/database/database.inc','',0),('DatabaseTransactionOutOfOrderException','class','includes/database/database.inc','',0),('DateFormatTestCase','class','modules/system/system.test','system',0),('DateTimeFunctionalTest','class','modules/system/system.test','system',0),('DBLogTestCase','class','modules/dblog/dblog.test','dblog',0),('DefaultMailSystem','class','modules/system/system.mail.inc','system',0),('DeleteQuery','class','includes/database/query.inc','',0),('DeleteQuery_sqlite','class','includes/database/sqlite/query.inc','',0),('DrupalCacheArray','class','includes/bootstrap.inc','',0),('DrupalCacheInterface','interface','includes/cache.inc','',0),('DrupalDatabaseCache','class','includes/cache.inc','',0),('DrupalDefaultEntityController','class','includes/entity.inc','',0),('DrupalEntityControllerInterface','interface','includes/entity.inc','',0),('DrupalFakeCache','class','includes/cache-install.inc','',0),('DrupalLocalStreamWrapper','class','includes/stream_wrappers.inc','',0),('DrupalPrivateStreamWrapper','class','includes/stream_wrappers.inc','',0),('DrupalPublicStreamWrapper','class','includes/stream_wrappers.inc','',0),('DrupalQueue','class','modules/system/system.queue.inc','system',0),('DrupalQueueInterface','interface','modules/system/system.queue.inc','system',0),('DrupalReliableQueueInterface','interface','modules/system/system.queue.inc','system',0),('DrupalRequestSanitizer','class','includes/request-sanitizer.inc','',0),('DrupalSetMessageTest','class','modules/system/system.test','system',0),('DrupalStreamWrapperInterface','interface','includes/stream_wrappers.inc','',0),('DrupalTemporaryStreamWrapper','class','includes/stream_wrappers.inc','',0),('DrupalUpdateException','class','includes/update.inc','',0),('DrupalUpdaterInterface','interface','includes/updater.inc','',0),('EnableDisableTestCase','class','modules/system/system.test','system',0),('EntityFieldQuery','class','includes/entity.inc','',0),('EntityFieldQueryException','class','includes/entity.inc','',0),('EntityMalformedException','class','includes/entity.inc','',0),('EntityPropertiesTestCase','class','modules/field/tests/field.test','field',0),('FieldAttachOtherTestCase','class','modules/field/tests/field.test','field',0),('FieldAttachStorageTestCase','class','modules/field/tests/field.test','field',0),('FieldAttachTestCase','class','modules/field/tests/field.test','field',0),('FieldBulkDeleteTestCase','class','modules/field/tests/field.test','field',0),('FieldCrudTestCase','class','modules/field/tests/field.test','field',0),('FieldDisplayAPITestCase','class','modules/field/tests/field.test','field',0),('FieldException','class','modules/field/field.module','field',0),('FieldFormTestCase','class','modules/field/tests/field.test','field',0),('FieldInfo','class','modules/field/field.info.class.inc','field',0),('FieldInfoTestCase','class','modules/field/tests/field.test','field',0),('FieldInstanceCrudTestCase','class','modules/field/tests/field.test','field',0),('FieldsOverlapException','class','includes/database/database.inc','',0),('FieldSqlStorageTestCase','class','modules/field/modules/field_sql_storage/field_sql_storage.test','field_sql_storage',0),('FieldTestCase','class','modules/field/tests/field.test','field',0),('FieldTranslationsTestCase','class','modules/field/tests/field.test','field',0),('FieldUIAlterTestCase','class','modules/field_ui/field_ui.test','field_ui',0),('FieldUIManageDisplayTestCase','class','modules/field_ui/field_ui.test','field_ui',0),('FieldUIManageFieldsTestCase','class','modules/field_ui/field_ui.test','field_ui',0),('FieldUITestCase','class','modules/field_ui/field_ui.test','field_ui',0),('FieldUpdateForbiddenException','class','modules/field/field.module','field',0),('FieldValidationException','class','modules/field/field.attach.inc','field',0),('FileFieldAnonymousSubmission','class','modules/file/tests/file.test','file',0),('FileFieldDisplayTestCase','class','modules/file/tests/file.test','file',0),('FileFieldPathTestCase','class','modules/file/tests/file.test','file',0),('FileFieldRevisionTestCase','class','modules/file/tests/file.test','file',0),('FileFieldTestCase','class','modules/file/tests/file.test','file',0),('FileFieldValidateTestCase','class','modules/file/tests/file.test','file',0),('FileFieldWidgetTestCase','class','modules/file/tests/file.test','file',0),('FileManagedFileElementTestCase','class','modules/file/tests/file.test','file',0),('FilePrivateTestCase','class','modules/file/tests/file.test','file',0),('FileTaxonomyTermTestCase','class','modules/file/tests/file.test','file',0),('FileTokenReplaceTestCase','class','modules/file/tests/file.test','file',0),('FileTransfer','class','includes/filetransfer/filetransfer.inc','',0),('FileTransferChmodInterface','interface','includes/filetransfer/filetransfer.inc','',0),('FileTransferException','class','includes/filetransfer/filetransfer.inc','',0),('FileTransferFTP','class','includes/filetransfer/ftp.inc','',0),('FileTransferFTPExtension','class','includes/filetransfer/ftp.inc','',0),('FileTransferLocal','class','includes/filetransfer/local.inc','',0),('FileTransferSSH','class','includes/filetransfer/ssh.inc','',0),('FilterAdminTestCase','class','modules/filter/filter.test','filter',0),('FilterCRUDTestCase','class','modules/filter/filter.test','filter',0),('FilterDefaultFormatTestCase','class','modules/filter/filter.test','filter',0),('FilterDOMSerializeTestCase','class','modules/filter/filter.test','filter',0),('FilterFormatAccessTestCase','class','modules/filter/filter.test','filter',0),('FilterHooksTestCase','class','modules/filter/filter.test','filter',0),('FilterNoFormatTestCase','class','modules/filter/filter.test','filter',0),('FilterSecurityTestCase','class','modules/filter/filter.test','filter',0),('FilterSettingsTestCase','class','modules/filter/filter.test','filter',0),('FilterUnitTestCase','class','modules/filter/filter.test','filter',0),('FloodFunctionalTest','class','modules/system/system.test','system',0),('FrontPageTestCase','class','modules/system/system.test','system',0),('HelpTestCase','class','modules/help/help.test','help',0),('HookRequirementsTestCase','class','modules/system/system.test','system',0),('ImageAdminStylesUnitTest','class','modules/image/image.test','image',0),('ImageAdminUiTestCase','class','modules/image/image.test','image',0),('ImageDimensionsScaleTestCase','class','modules/image/image.test','image',0),('ImageDimensionsTestCase','class','modules/image/image.test','image',0),('ImageEffectsUnitTest','class','modules/image/image.test','image',0),('ImageFieldDefaultImagesTestCase','class','modules/image/image.test','image',0),('ImageFieldDisplayTestCase','class','modules/image/image.test','image',0),('ImageFieldTestCase','class','modules/image/image.test','image',0),('ImageFieldValidateTestCase','class','modules/image/image.test','image',0),('ImageStyleFlushTest','class','modules/image/image.test','image',0),('ImageStylesPathAndUrlTestCase','class','modules/image/image.test','image',0),('ImageThemeFunctionWebTestCase','class','modules/image/image.test','image',0),('InfoFileParserTestCase','class','modules/system/system.test','system',0),('InsertQuery','class','includes/database/query.inc','',0),('InsertQuery_mysql','class','includes/database/mysql/query.inc','',0),('InsertQuery_pgsql','class','includes/database/pgsql/query.inc','',0),('InsertQuery_sqlite','class','includes/database/sqlite/query.inc','',0),('InvalidMergeQueryException','class','includes/database/database.inc','',0),('IPAddressBlockingTestCase','class','modules/system/system.test','system',0),('LibrariesAdminWebTest','class','sites/all/modules/libraries/tests/LibrariesAdminWebTest.test','libraries',0),('LibrariesLoadWebTest','class','sites/all/modules/libraries/tests/LibrariesLoadWebTest.test','libraries',0),('LibrariesUnitTest','class','sites/all/modules/libraries/tests/LibrariesUnitTest.test','libraries',0),('LibrariesWebTestBase','class','sites/all/modules/libraries/tests/LibrariesWebTestBase.test','libraries',0),('ListDynamicValuesTestCase','class','modules/field/modules/list/tests/list.test','list',0),('ListDynamicValuesValidationTestCase','class','modules/field/modules/list/tests/list.test','list',0),('ListFieldTestCase','class','modules/field/modules/list/tests/list.test','list',0),('ListFieldUITestCase','class','modules/field/modules/list/tests/list.test','list',0),('MailSystemInterface','interface','includes/mail.inc','',0),('MemoryQueue','class','modules/system/system.queue.inc','system',0),('MenuNodeTestCase','class','modules/menu/menu.test','menu',0),('MenuTestCase','class','modules/menu/menu.test','menu',0),('MergeQuery','class','includes/database/query.inc','',0),('ModuleDependencyTestCase','class','modules/system/system.test','system',0),('ModuleRequiredTestCase','class','modules/system/system.test','system',0),('ModuleTestCase','class','modules/system/system.test','system',0),('ModuleUpdater','class','modules/system/system.updater.inc','system',0),('ModuleVersionTestCase','class','modules/system/system.test','system',0),('MultiStepNodeFormBasicOptionsTest','class','modules/node/node.test','node',0),('NewDefaultThemeBlocks','class','modules/block/block.test','block',-5),('NodeAccessBaseTableTestCase','class','modules/node/node.test','node',0),('NodeAccessFieldTestCase','class','modules/node/node.test','node',0),('NodeAccessPagerTestCase','class','modules/node/node.test','node',0),('NodeAccessRebuildTestCase','class','modules/node/node.test','node',0),('NodeAccessRecordsTestCase','class','modules/node/node.test','node',0),('NodeAccessTestCase','class','modules/node/node.test','node',0),('NodeAdminTestCase','class','modules/node/node.test','node',0),('NodeBlockFunctionalTest','class','modules/node/node.test','node',0),('NodeBlockTestCase','class','modules/node/node.test','node',0),('NodeBuildContent','class','modules/node/node.test','node',0),('NodeController','class','modules/node/node.module','node',0),('NodeCreationTestCase','class','modules/node/node.test','node',0),('NodeEntityFieldQueryAlter','class','modules/node/node.test','node',0),('NodeEntityViewModeAlterTest','class','modules/node/node.test','node',0),('NodeFeedTestCase','class','modules/node/node.test','node',0),('NodeLoadHooksTestCase','class','modules/node/node.test','node',0),('NodeLoadMultipleTestCase','class','modules/node/node.test','node',0),('NodeMultiByteUtf8Test','class','modules/node/node.test','node',0),('NodePageCacheTest','class','modules/node/node.test','node',0),('NodePostSettingsTestCase','class','modules/node/node.test','node',0),('NodeQueryAlter','class','modules/node/node.test','node',0),('NodeRevisionPermissionsTestCase','class','modules/node/node.test','node',0),('NodeRevisionsTestCase','class','modules/node/node.test','node',0),('NodeRSSContentTestCase','class','modules/node/node.test','node',0),('NodeSaveTestCase','class','modules/node/node.test','node',0),('NodeTitleTestCase','class','modules/node/node.test','node',0),('NodeTitleXSSTestCase','class','modules/node/node.test','node',0),('NodeTokenReplaceTestCase','class','modules/node/node.test','node',0),('NodeTypePersistenceTestCase','class','modules/node/node.test','node',0),('NodeTypeTestCase','class','modules/node/node.test','node',0),('NodeWebTestCase','class','modules/node/node.test','node',0),('NoFieldsException','class','includes/database/database.inc','',0),('NoHelpTestCase','class','modules/help/help.test','help',0),('NonDefaultBlockAdmin','class','modules/block/block.test','block',-5),('NumberFieldTestCase','class','modules/field/modules/number/number.test','number',0),('OptionsSelectDynamicValuesTestCase','class','modules/field/modules/options/options.test','options',0),('OptionsWidgetsTestCase','class','modules/field/modules/options/options.test','options',0),('PageEditTestCase','class','modules/node/node.test','node',0),('PageNotFoundTestCase','class','modules/system/system.test','system',0),('PagePreviewTestCase','class','modules/node/node.test','node',0),('PagerDefault','class','includes/pager.inc','',0),('PageTitleFiltering','class','modules/system/system.test','system',0),('PageViewTestCase','class','modules/node/node.test','node',0),('PathLanguageTestCase','class','modules/path/path.test','path',0),('PathLanguageUITestCase','class','modules/path/path.test','path',0),('PathMonolingualTestCase','class','modules/path/path.test','path',0),('PathTaxonomyTermTestCase','class','modules/path/path.test','path',0),('PathTestCase','class','modules/path/path.test','path',0),('PHPAccessTestCase','class','modules/php/php.test','php',0),('PHPFilterTestCase','class','modules/php/php.test','php',0),('PHPTestCase','class','modules/php/php.test','php',0),('Query','class','includes/database/query.inc','',0),('QueryAlterableInterface','interface','includes/database/query.inc','',0),('QueryConditionInterface','interface','includes/database/query.inc','',0),('QueryExtendableInterface','interface','includes/database/select.inc','',0),('QueryPlaceholderInterface','interface','includes/database/query.inc','',0),('QueueTestCase','class','modules/system/system.test','system',0),('RdfCommentAttributesTestCase','class','modules/rdf/rdf.test','rdf',0),('RdfCrudTestCase','class','modules/rdf/rdf.test','rdf',0),('RdfGetRdfNamespacesTestCase','class','modules/rdf/rdf.test','rdf',0),('RdfMappingDefinitionTestCase','class','modules/rdf/rdf.test','rdf',0),('RdfMappingHookTestCase','class','modules/rdf/rdf.test','rdf',0),('RdfRdfaMarkupTestCase','class','modules/rdf/rdf.test','rdf',0),('RdfTrackerAttributesTestCase','class','modules/rdf/rdf.test','rdf',0),('RetrieveFileTestCase','class','modules/system/system.test','system',0),('SchemaCache','class','includes/bootstrap.inc','',0),('SearchAdvancedSearchForm','class','modules/search/search.test','search',0),('SearchBlockTestCase','class','modules/search/search.test','search',0),('SearchCommentCountToggleTestCase','class','modules/search/search.test','search',0),('SearchCommentTestCase','class','modules/search/search.test','search',0),('SearchConfigSettingsForm','class','modules/search/search.test','search',0),('SearchEmbedForm','class','modules/search/search.test','search',0),('SearchExactTestCase','class','modules/search/search.test','search',0),('SearchExcerptTestCase','class','modules/search/search.test','search',0),('SearchExpressionInsertExtractTestCase','class','modules/search/search.test','search',0),('SearchKeywordsConditions','class','modules/search/search.test','search',0),('SearchLanguageTestCase','class','modules/search/search.test','search',0),('SearchMatchTestCase','class','modules/search/search.test','search',0),('SearchNodeAccessTest','class','modules/search/search.test','search',0),('SearchNodeTagTest','class','modules/search/search.test','search',0),('SearchNumberMatchingTestCase','class','modules/search/search.test','search',0),('SearchNumbersTestCase','class','modules/search/search.test','search',0),('SearchPageOverride','class','modules/search/search.test','search',0),('SearchPageText','class','modules/search/search.test','search',0),('SearchQuery','class','modules/search/search.extender.inc','search',0),('SearchRankingTestCase','class','modules/search/search.test','search',0),('SearchSetLocaleTest','class','modules/search/search.test','search',0),('SearchSimplifyTestCase','class','modules/search/search.test','search',0),('SearchTokenizerTestCase','class','modules/search/search.test','search',0),('SelectQuery','class','includes/database/select.inc','',0),('SelectQueryExtender','class','includes/database/select.inc','',0),('SelectQueryInterface','interface','includes/database/select.inc','',0),('SelectQuery_pgsql','class','includes/database/pgsql/select.inc','',0),('SelectQuery_sqlite','class','includes/database/sqlite/select.inc','',0),('ShortcutLinksTestCase','class','modules/shortcut/shortcut.test','shortcut',0),('ShortcutSetsTestCase','class','modules/shortcut/shortcut.test','shortcut',0),('ShortcutTestCase','class','modules/shortcut/shortcut.test','shortcut',0),('ShutdownFunctionsTest','class','modules/system/system.test','system',0),('SiteMaintenanceTestCase','class','modules/system/system.test','system',0),('SkipDotsRecursiveDirectoryIterator','class','includes/filetransfer/filetransfer.inc','',0),('StreamWrapperInterface','interface','includes/stream_wrappers.inc','',0),('SummaryLengthTestCase','class','modules/node/node.test','node',0),('SystemAdminTestCase','class','modules/system/system.test','system',0),('SystemAuthorizeCase','class','modules/system/system.test','system',0),('SystemBlockTestCase','class','modules/system/system.test','system',0),('SystemIndexPhpTest','class','modules/system/system.test','system',0),('SystemInfoAlterTestCase','class','modules/system/system.test','system',0),('SystemMainContentFallback','class','modules/system/system.test','system',0),('SystemQueue','class','modules/system/system.queue.inc','system',0),('SystemThemeFunctionalTest','class','modules/system/system.test','system',0),('SystemValidTokenTest','class','modules/system/system.test','system',0),('TableSort','class','includes/tablesort.inc','',0),('TaxonomyEFQTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyHooksTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyLegacyTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyLoadMultipleTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyQueryAlterTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyRSSTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyTermController','class','modules/taxonomy/taxonomy.module','taxonomy',0),('TaxonomyTermFieldMultipleVocabularyTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyTermFieldTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyTermFunctionTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyTermIndexTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyTermTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyThemeTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyTokenReplaceTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyVocabularyController','class','modules/taxonomy/taxonomy.module','taxonomy',0),('TaxonomyVocabularyFunctionalTest','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyVocabularyTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TaxonomyWebTestCase','class','modules/taxonomy/taxonomy.test','taxonomy',0),('TestingMailSystem','class','modules/system/system.mail.inc','system',0),('TextFieldTestCase','class','modules/field/modules/text/text.test','text',0),('TextSummaryTestCase','class','modules/field/modules/text/text.test','text',0),('TextTranslationTestCase','class','modules/field/modules/text/text.test','text',0),('ThemeRegistry','class','includes/theme.inc','',0),('ThemeUpdater','class','modules/system/system.updater.inc','system',0),('TokenReplaceTestCase','class','modules/system/system.test','system',0),('TokenScanTest','class','modules/system/system.test','system',0),('TruncateQuery','class','includes/database/query.inc','',0),('TruncateQuery_mysql','class','includes/database/mysql/query.inc','',0),('TruncateQuery_sqlite','class','includes/database/sqlite/query.inc','',0),('UpdateCoreTestCase','class','modules/update/update.test','update',0),('UpdateCoreUnitTestCase','class','modules/update/update.test','update',0),('UpdateQuery','class','includes/database/query.inc','',0),('UpdateQuery_pgsql','class','includes/database/pgsql/query.inc','',0),('UpdateQuery_sqlite','class','includes/database/sqlite/query.inc','',0),('Updater','class','includes/updater.inc','',0),('UpdaterException','class','includes/updater.inc','',0),('UpdaterFileTransferException','class','includes/updater.inc','',0),('UpdateScriptFunctionalTest','class','modules/system/system.test','system',0),('UpdateTestContribCase','class','modules/update/update.test','update',0),('UpdateTestHelper','class','modules/update/update.test','update',0),('UpdateTestUploadCase','class','modules/update/update.test','update',0),('UserAccountLinksUnitTests','class','modules/user/user.test','user',0),('UserAdminTestCase','class','modules/user/user.test','user',0),('UserAuthmapAssignmentTestCase','class','modules/user/user.test','user',0),('UserAutocompleteTestCase','class','modules/user/user.test','user',0),('UserBlocksUnitTests','class','modules/user/user.test','user',0),('UserCancelTestCase','class','modules/user/user.test','user',0),('UserController','class','modules/user/user.module','user',0),('UserCreateTestCase','class','modules/user/user.test','user',0),('UserEditedOwnAccountTestCase','class','modules/user/user.test','user',0),('UserEditRebuildTestCase','class','modules/user/user.test','user',0),('UserEditTestCase','class','modules/user/user.test','user',0),('UserLoginTestCase','class','modules/user/user.test','user',0),('UserPasswordResetTestCase','class','modules/user/user.test','user',0),('UserPermissionsTestCase','class','modules/user/user.test','user',0),('UserPictureTestCase','class','modules/user/user.test','user',0),('UserRegistrationTestCase','class','modules/user/user.test','user',0),('UserRoleAdminTestCase','class','modules/user/user.test','user',0),('UserRolesAssignmentTestCase','class','modules/user/user.test','user',0),('UserSaveTestCase','class','modules/user/user.test','user',0),('UserSignatureTestCase','class','modules/user/user.test','user',0),('UserTimeZoneFunctionalTest','class','modules/user/user.test','user',0),('UserTokenReplaceTestCase','class','modules/user/user.test','user',0),('UserUserSearchTestCase','class','modules/user/user.test','user',0),('UserValidateCurrentPassCustomForm','class','modules/user/user.test','user',0),('UserValidationTestCase','class','modules/user/user.test','user',0); +/*!40000 ALTER TABLE `registry` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `registry_file` +-- + +DROP TABLE IF EXISTS `registry_file`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `registry_file` ( `filename` varchar(255) NOT NULL COMMENT 'Path to the file.', `hash` varchar(64) NOT NULL COMMENT 'sha-256 hash of the file’s contents when last parsed.', PRIMARY KEY (`filename`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Files parsed to build the registry.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `registry_file` +-- +LOCK TABLES `registry_file` WRITE; +/*!40000 ALTER TABLE `registry_file` DISABLE KEYS */; +INSERT INTO `registry_file` VALUES ('includes/actions.inc','f36b066681463c7dfe189e0430cb1a89bf66f7e228cbb53cdfcd93987193f759'),('includes/ajax.inc','3d1c0d2efcdab327224122df1156a665f9bbf60873907dde2f189b018d4e9be3'),('includes/archiver.inc','bdbb21b712a62f6b913590b609fd17cd9f3c3b77c0d21f68e71a78427ed2e3e9'),('includes/authorize.inc','6d64d8c21aa01eb12fc29918732e4df6b871ed06e5d41373cb95c197ed661d13'),('includes/batch.inc','1fe00f9a25481cd43e19fbd6bd37b7ff9dca79f8405ec3e55ffb011be12ec2c3'),('includes/batch.queue.inc','554b2e92e1dad0f7fd5a19cb8dff7e109f10fbe2441a5692d076338ec908de0f'),('includes/bootstrap.inc','1c29077bba129da26660f46f083112dd313e9fba9447436610a94b036c393bb3'),('includes/cache-install.inc','e7ed123c5805703c84ad2cce9c1ca46b3ce8caeeea0d8ef39a3024a4ab95fa0e'),('includes/cache.inc','033c9bf2555dba29382b077f78cc00c82fd7f42a959ba31b710adddf6fdf24fe'),('includes/common.inc','d53f0ec66d5a9a2b98698ddda819ee41c6dd26c049b41a7a7aa5c4e377339bdb'),('includes/database/database.inc','2ef46543fb9cf61ed9fa9aed4e44dd31630c22604ea6b8e48b57ebd7ad11a111'),('includes/database/log.inc','9feb5a17ae2fabcf26a96d2a634ba73da501f7bcfc3599a693d916a6971d00d1'),('includes/database/mysql/database.inc','32a577354dba6030043500873f8a2a7359c80c179a213284b026c1a9b0452b70'),('includes/database/mysql/install.inc','6ae316941f771732fbbabed7e1d6b4cbb41b1f429dd097d04b3345aa15e461a0'),('includes/database/mysql/query.inc','0212a871646c223bf77aa26b945c77a8974855373967b5fb9fdc09f8a1de88a6'),('includes/database/mysql/schema.inc','2ef729f8d6466d5cd87ba233152d88590bce629d8366040b2509b4e24258d780'),('includes/database/pgsql/database.inc','651bec324e2204aa35a28fdbd876aa8e4f7a9e909e75cc8db811e9c156b0df88'),('includes/database/pgsql/install.inc','39587f26a9e054afaab2064d996af910f1b201ef1c6b82938ef130e4ff8c6aab'),('includes/database/pgsql/query.inc','0df57377686c921e722a10b49d5e433b131176c8059a4ace4680964206fc14b4'),('includes/database/pgsql/schema.inc','1588daadfa53506aa1f5d94572162a45a46dc3ceabdd0e2f224532ded6508403'),('includes/database/pgsql/select.inc','1e509bc97c58223750e8ea735145b316827e36f43c07b946003e41f5bca23659'),('includes/database/prefetch.inc','b5b207a66a69ecb52ee4f4459af16a7b5eabedc87254245f37cc33bebb61c0fb'),('includes/database/query.inc','982d44a294eea1c9619687c14df2987257e3776fcabeba05f01432e934cf61c6'),('includes/database/schema.inc','6ea8e4063eb72d8f6b1a9f8b8908489d9f89b4a158ef37002d21209fb500358c'),('includes/database/select.inc','02a2d4345287df62b163ca2524e99b7370c9ec167bc937245328683d4e3e3d56'),('includes/database/sqlite/database.inc','62f6669c4610557c4b34ada9f0a0f61d6cb7b377e0a9032d2efca7b5f39b0965'),('includes/database/sqlite/install.inc','6620f354aa175a116ba3a0562c980d86cc3b8b481042fc3cc5ed6a4d1a7a6d74'),('includes/database/sqlite/query.inc','0eb02ad036ef61c490fb3f189a4cdc8fc1ae0d442737806346fd63aea8f30db3'),('includes/database/sqlite/schema.inc','3a7d22ec1f0ee09bfa267309b90e30edbe39e453b3025b30cbe3ae7412a4df2d'),('includes/database/sqlite/select.inc','8d1c426dbd337733c206cce9f59a172546c6ed856d8ef3f1c7bef05a16f7bf68'),('includes/date.inc','1de2c25e3b67a9919fc6c8061594442b6fb2cdd3a48ddf1591ee3aa98484b737'),('includes/entity.inc','f06b508f93e72ba70f979d8391be57662c018a03a32fac0a6d3baa752740133d'),('includes/errors.inc','d731bbe3a60508e164cfa90b8edc06400c7f15844f9f9bc3935dd87e44c460db'),('includes/file.inc','f112194214d483ce867165922ad7996c64174bd932369f89f8335af026bbb493'),('includes/file.mimetypes.inc','33266e837f4ce076378e7e8cef6c5af46446226ca4259f83e13f605856a7f147'),('includes/filetransfer/filetransfer.inc','fdea8ae48345ec91885ac48a9bc53daf87616271472bb7c29b7e3ce219b22034'),('includes/filetransfer/ftp.inc','51eb119b8e1221d598ffa6cc46c8a322aa77b49a3d8879f7fb38b7221cf7e06d'),('includes/filetransfer/local.inc','7cbfdb46abbdf539640db27e66fb30e5265128f31002bd0dfc3af16ae01a9492'),('includes/filetransfer/ssh.inc','92f1232158cb32ab04cbc93ae38ad3af04796e18f66910a9bc5ca8e437f06891'),('includes/form.inc','a0e219d53d641f08d6f1d609e53f06f3f8b1c591d20113d0992557c815b44a72'),('includes/graph.inc','8e0e313a8bb33488f371df11fc1b58d7cf80099b886cd1003871e2c896d1b536'),('includes/image.inc','bcdc7e1599c02227502b9d0fe36eeb2b529b130a392bc709eb737647bd361826'),('includes/install.core.inc','189653e4bb7d4828bd6e1b61015fabcc7182e23d9dd8858170f98114d99400c8'),('includes/install.inc','fbb23627b06abb070b4531da786c1e06bf1dbd6f923bb2b404f4808c2340b0f9'),('includes/iso.inc','0ce4c225edcfa9f037703bc7dd09d4e268a69bcc90e55da0a3f04c502bd2f349'),('includes/json-encode.inc','02a822a652d00151f79db9aa9e171c310b69b93a12f549bc2ce00533a8efa14e'),('includes/language.inc','4e08f30843a7ccaeea5c041083e9f77d33d57ff002f1ab4f66168e2c683ce128'),('includes/locale.inc','ca50acc0780cbffeca17f99a0997f91b8b9402f0eec1898c3122e1d73664d01d'),('includes/lock.inc','a181c8bd4f88d292a0a73b9f1fbd727e3314f66ec3631f288e6b9a54ba2b70fa'),('includes/mail.inc','41d0e657119a05f8d7e85ebf32e74b12a1c3107d717a348158414b113e208b9c'),('includes/menu.inc','8e7a8a1a4666a8ca66d1b19cc97be4cf82c3bb0e835e652ee366bec9b74a8c23'),('includes/module.inc','8dab73e50e6bcd680a26f55597d2d103ba68a29089f888e2a2c206fc38eaa669'),('includes/pager.inc','6f9494b85c07a2cc3be4e54aff2d2757485238c476a7da084d25bde1d88be6d8'),('includes/password.inc','fd9a1c94fe5a0fa7c7049a2435c7280b1d666b2074595010e3c492dd15712775'),('includes/path.inc','2dca08d14a46e5ac6a665b7a5dde78045d8de2b35aaa78c6fb811e1125ce4953'),('includes/registry.inc','f47b20859f0fc80bf4bb2849a1282d6c54006957b69da0e5f4691de585ca4cdf'),('includes/request-sanitizer.inc','8d43f991b57cbedb2dc99d153f053a24e3ab43849b4816c0353529b918a66441'),('includes/session.inc','5851ff6941aba2744dd0c247f077fc02fbbe24e9786e04ea0a3c372d68ca6d16'),('includes/stream_wrappers.inc','b8a5a53f3d3ef26ea868037547f76af8049ce0c55b464810c627310a84f24924'),('includes/tablesort.inc','2d88768a544829595dd6cda2a5eb008bedb730f36bba6dfe005d9ddd999d5c0f'),('includes/theme.inc','5d8b96db9760367eb86821085a17a144a58cb355e6f547e321321ee34535da7b'),('includes/theme.maintenance.inc','39f068b3eee4d10a90d6aa3c86db587b6d25844c2919d418d34d133cfe330f5a'),('includes/token.inc','5e7898cd78689e2c291ed3cd8f41c032075656896f1db57e49217aac19ae0428'),('includes/unicode.entities.inc','2b858138596d961fbaa4c6e3986e409921df7f76b6ee1b109c4af5970f1e0f54'),('includes/unicode.inc','e18772dafe0f80eb139fcfc582fef1704ba9f730647057d4f4841d6a6e4066ca'),('includes/update.inc','25c30f1e61ef9c91a7bdeb37791c2215d9dc2ae07dba124722d783ca31bb01e7'),('includes/updater.inc','d2da0e74ed86e93c209f16069f3d32e1a134ceb6c06a0044f78e841a1b54e380'),('includes/utility.inc','3458fd2b55ab004dd0cc529b8e58af12916e8bd36653b072bdd820b26b907ed5'),('includes/xmlrpc.inc','ea24176ec445c440ba0c825fc7b04a31b440288df8ef02081560dc418e34e659'),('includes/xmlrpcs.inc','925c4d5bf429ad9650f059a8862a100bd394dce887933f5b3e7e32309a51fd8e'),('modules/block/block.test','40d9de00589211770a85c47d38c8ad61c598ec65d9332128a882eb8750e65a16'),('modules/blog/blog.test','f7534b972951c05d34bd832d3e06176b372fff6f4999c428f789fdd7703ed2e2'),('modules/color/color.test','610ba154f42b6af5871fb09cdb0bc7badc29b03845c08d86e0e524840dd27568'),('modules/comment/comment.module','db858137ff6ce06d87cb3b8f5275bed90c33a6d9aa7d46e7a74524cc2f052309'),('modules/comment/comment.test','332d14e197b4ebe85b1b70a15602981d99d332e2293576c0e44cf18a808c7aac'),('modules/contact/contact.test','655e8d5fe7536a972c2233e438a142166b15a118cc644e94b756c2814c375634'),('modules/contextual/contextual.test','023dafa199bd325ecc55a17b2a3db46ac0a31e23059f701f789f3bc42427ba0b'),('modules/dashboard/dashboard.test','125df00fc6deb985dc554aa7807a48e60a68dbbddbad9ec2c4718da724f0e683'),('modules/dblog/dblog.test','79ba7991c3f40f9241e9a03ffa43faf945c82658ca9b52ec62bd13bd80f41269'),('modules/field/field.attach.inc','2df4687b5ec078c4893dc1fea514f67524fd5293de717b9e05caf977e5ae2327'),('modules/field/field.info.class.inc','cf18178e119d43897d3abd882ba3acc0cf59d1ad747663437c57b1ec4d0a4322'),('modules/field/field.module','48b5b83f214a8d19e446f46c5d7a1cd35faa656ccb7b540f9f02462a440cacdd'),('modules/field/modules/field_sql_storage/field_sql_storage.test','315eedaf2022afc884c35efd3b7c400eddab6ea30bec91924bc82ab5cd3e79f2'),('modules/field/modules/list/tests/list.test','c1a214d7efd3247dd947d742a8514ec9649da62593608dfdccee6913d48e5709'),('modules/field/modules/number/number.test','fc8f193904f1c5f87dcf51a279975214b34aa1349fe9c38b09c4e6740b059b49'),('modules/field/modules/options/options.test','1b30956b6f46840ccb41b99bda08f328172f008f1fb4164c65fe9e4047fffa5f'),('modules/field/modules/text/text.test','5c28b9da26417d2ed8a169850989c0b59f2b188a0161eb58e2b87c67994d602d'),('modules/field/tests/field.test','5eaad7a933ef8ea05b958056492ce17858cd542111f0fe81dd1a5949ad8f966e'),('modules/field_ui/field_ui.test','f535e5627c969e9083a63aaf72d4ac645e30709d7b87af15c6c3b870481f283a'),('modules/file/tests/file.test','09a4233406b2913692c91986ef0509197ffbf4a59d3c9843acf8bdd81ec0832b'),('modules/filter/filter.test','b8aa5e6b832422c6ad5fe963898ec9526c814614f27ecccb67107ce194997d6a'),('modules/help/help.test','bc934de8c71bd9874a05ccb5e8f927f4c227b3b2397d739e8504c8fd6ae5a83c'),('modules/image/image.test','6e7a0cbcb58f6210127b0ac7c1d118d488abd0925fe8db10a3405af87f1d9fe1'),('modules/menu/menu.test','71efd7117a882fdcdd50971b4a68f7f2895b532e09acf094d747f27a15742c5b'),('modules/node/node.module','70f969229d03819dba439546ae7aef30283b93e410af1b45f5a25b90d3cb8edd'),('modules/node/node.test','35bf40fde62f3a1de95bab9f037b84f20c2f93a1c579d7d19e4a87afe75dc330'),('modules/path/path.test','2004183b2c7c86028bf78c519c6a7afc4397a8267874462b0c2b49b0f8c20322'),('modules/php/php.test','d234f9c1ab18a05834a3cb6dc532fb4c259aa25612551f953ba6e3bb714657b8'),('modules/rdf/rdf.test','9849d2b717119aa6b5f1496929e7ac7c9c0a6e98486b66f3876bda0a8c165525'),('modules/search/search.extender.inc','013a6a841cc48a6dc991153fb692b8d1546e56b78d9c95e97e0d7e92296d3481'),('modules/search/search.test','e43c21510d510885dfad6484afa931382083b75b7e67286bda56a6aafe265f28'),('modules/shortcut/shortcut.test','0d78280d4d0a05aa772218e45911552e39611ca9c258b9dd436307914ac3f254'),('modules/system/system.archiver.inc','faa849f3e646a910ab82fd6c8bbf0a4e6b8c60725d7ba81ec0556bd716616cd1'),('modules/system/system.mail.inc','d31e1769f5defbe5f27dc68f641ab80fb8d3de92f6e895f4c654ec05fc7e5f0f'),('modules/system/system.queue.inc','a77a5913d84368092805ac551ca63737c1d829455504fcccb95baa2932f28009'),('modules/system/system.tar.inc','d0d2f191d79b3227852e7436908386bdd7a25f78c73f3c8bf9ef5903892ae993'),('modules/system/system.test','7a94d94c13eb60684678e62f25cec44d46714a1ca4987f62d86d358e8978902a'),('modules/system/system.updater.inc','9433fa8d39500b8c59ab05f41c0aac83b2586a43be4aa949821380e36c4d3c48'),('modules/taxonomy/taxonomy.module','19992c2e810a7b7a1c228d178b0b6c5f358082d515b8a6e77b0415a430e23997'),('modules/taxonomy/taxonomy.test','ce91ff8a2879d65fdb3477d3f437cad8ef50b8963dadb75ae203854987b2c23a'),('modules/update/update.test','994b66b737f16eb98ee18c9e9ecd62e86de2792159e70b36982e95b48f2746a3'),('modules/user/user.module','b773a1b0f7448546393e6f7b2436d0d91b7965889afdf4a863bba4c0bc0dba69'),('modules/user/user.test','0b55048c0de2dee5ab1c25a38c01b3bd13f476b43e4172bb0c06cb6188d2edc9'),('sites/all/modules/libraries/tests/LibrariesAdminWebTest.test','933af00ee9ad342999e20c0a82440ab04933b5d7713ffe2e7371a9af15492bf5'),('sites/all/modules/libraries/tests/LibrariesLoadWebTest.test','4cfaf88ce29e72f8ecd52b02cc9f7bac2ea60a715530cd9ff4fea929dac161ee'),('sites/all/modules/libraries/tests/LibrariesUnitTest.test','08139d770447993484828d0a642b6a771314c74e392074e94c2b7dcebc10b093'),('sites/all/modules/libraries/tests/LibrariesWebTestBase.test','056dfdd67ac9d6a84ffbe0f507e165fd6f07a0c82c3c7efbc1874e870e85e83a'); +/*!40000 ALTER TABLE `registry_file` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `role` -- --- Άδειασμα δεδομένων του πίνακα `registry_file` --- - -INSERT INTO `registry_file` (`filename`, `hash`) VALUES -('includes/actions.inc', 'f36b066681463c7dfe189e0430cb1a89bf66f7e228cbb53cdfcd93987193f759'), -('includes/ajax.inc', '8328ec7441a0c101c1b39ba8d415c1d951b400887d8b29d2831210ae207f86eb'), -('includes/archiver.inc', 'bdbb21b712a62f6b913590b609fd17cd9f3c3b77c0d21f68e71a78427ed2e3e9'), -('includes/authorize.inc', '6d64d8c21aa01eb12fc29918732e4df6b871ed06e5d41373cb95c197ed661d13'), -('includes/batch.inc', '059da9e36e1f3717f27840aae73f10dea7d6c8daf16f6520401cc1ca3b4c0388'), -('includes/batch.queue.inc', '554b2e92e1dad0f7fd5a19cb8dff7e109f10fbe2441a5692d076338ec908de0f'), -('includes/bootstrap.inc', '025bd83ad086a9e2205de304ffcbdc9b19f74fa4cabfe32ad94c2dd0f49e6e9c'), -('includes/cache-install.inc', 'e7ed123c5805703c84ad2cce9c1ca46b3ce8caeeea0d8ef39a3024a4ab95fa0e'), -('includes/cache.inc', 'c1916375fcb92250a5c86aa53269d54854b983f34906d582fc912784f16ccaf4'), -('includes/common.inc', 'd4954efd95278dc8e1127e0703353d8a38d393c10b223c46adaef25ce8cb357c'), -('includes/database/database.inc', '1597142a1fbd6fcff24f2bb92805a1c98b7bc36520cc68007bc7383effcaf890'), -('includes/database/log.inc', '9feb5a17ae2fabcf26a96d2a634ba73da501f7bcfc3599a693d916a6971d00d1'), -('includes/database/mysql/database.inc', '8d3a784845064385ccdce8a66860f3177d52207df83d9735c0d72c9703dd258e'), -('includes/database/mysql/install.inc', '6ae316941f771732fbbabed7e1d6b4cbb41b1f429dd097d04b3345aa15e461a0'), -('includes/database/mysql/query.inc', '48cee5e5290282ccbe3e77814e70ab33b69efe8f0c09716ee465e3e5f888c2ce'), -('includes/database/mysql/schema.inc', 'd8d3904ea9c23a526c2f2a7acc8ba870b31c378aac2eb53e2e41a73c6209c5bd'), -('includes/database/pgsql/database.inc', '56726100fd44f461a04886c590c9c472cc2b2a1b92eb26c7674bf3821a76bb64'), -('includes/database/pgsql/install.inc', '585b80c5bbd6f134bff60d06397f15154657a577d4da8d1b181858905f09dea5'), -('includes/database/pgsql/query.inc', 'cb4c84f8f1ffc73098ed71137248dcd078a505a7530e60d979d74b3a3cdaa658'), -('includes/database/pgsql/schema.inc', '8fd647e4557522283caef63e528c6e403fc0751a46e94aac867a281af85eac27'), -('includes/database/pgsql/select.inc', 'fd4bba7887c1dc6abc8f080fc3a76c01d92ea085434e355dc1ecb50d8743c22d'), -('includes/database/prefetch.inc', 'b5b207a66a69ecb52ee4f4459af16a7b5eabedc87254245f37cc33bebb61c0fb'), -('includes/database/query.inc', 'cbc8fa88a15e58d39f3ae7a90bca55c48812202f8cdf74b9d4d7717ec54db469'), -('includes/database/schema.inc', '7eb7251f331109757173353263d1031493c1198ae17a165a6f5a03d3f14f93e7'), -('includes/database/select.inc', '1c74fa55c7721a704f5ef3389032604bf7a60fced15c40d844aee3e1cead7dc6'), -('includes/database/sqlite/database.inc', 'ed2b9981794239cdad2cd04cf4bcdc896ad4d6b66179a4fa487b0d1ec2150a10'), -('includes/database/sqlite/install.inc', '381f3db8c59837d961978ba3097bb6443534ed1659fd713aa563963fa0c42cc5'), -('includes/database/sqlite/query.inc', 'cd726af682495d8fe20283ddbc4d877536cad2df4a2df8afc2dc21be71a4eba8'), -('includes/database/sqlite/schema.inc', '238414785aa96dd27f10f48c961783f4d1091392beee8d0e7ca8ae774e917da2'), -('includes/database/sqlite/select.inc', '8d1c426dbd337733c206cce9f59a172546c6ed856d8ef3f1c7bef05a16f7bf68'), -('includes/date.inc', '18c047be64f201e16d189f1cc47ed9dcf0a145151b1ee187e90511b24e5d2b36'), -('includes/entity.inc', '43536d4fdfffdfcadf8606418a211113ba955b634d1d4a6df9c550df090bfa96'), -('includes/errors.inc', '58dc008b3b90ecc5e97fe2135ac25376b7719efec1fb74f43cde9068fedbf2ca'), -('includes/file.inc', 'eb9f794ed93a8550547a02fcdb137ba071497a4466f0e2878c76b0b941c5db8b'), -('includes/file.mimetypes.inc', 'f88c967550576694b7a1ce2afd0f2f1bbc1a91d21cc2c20f86c44d39ff353867'), -('includes/filetransfer/filetransfer.inc', 'fdea8ae48345ec91885ac48a9bc53daf87616271472bb7c29b7e3ce219b22034'), -('includes/filetransfer/ftp.inc', '589ebf4b8bd4a2973aa56a156ac1fa83b6c73e703391361fb573167670e0d832'), -('includes/filetransfer/local.inc', '7cbfdb46abbdf539640db27e66fb30e5265128f31002bd0dfc3af16ae01a9492'), -('includes/filetransfer/ssh.inc', '002e24a24cac133d12728bd3843868ce378681237d7fad420761af84e6efe5ad'), -('includes/form.inc', 'abb212b6be660bd10df31e248564411496ca972d3477a5b0ab529d413a5b3e5c'), -('includes/graph.inc', '8e0e313a8bb33488f371df11fc1b58d7cf80099b886cd1003871e2c896d1b536'), -('includes/image.inc', 'bcdc7e1599c02227502b9d0fe36eeb2b529b130a392bc709eb737647bd361826'), -('includes/install.core.inc', '2a036b695c555d7339115099e0b7b06bf7fbafbaad6d7cc143e49969ff96c394'), -('includes/install.inc', '45864b9d208a9dba5ee3d523786f4935a0b0c9d0d752229981da997b700954df'), -('includes/iso.inc', '27730e6175b79c3b5d494582a124f6210289faa03bef099e16347bb914464c66'), -('includes/json-encode.inc', '02a822a652d00151f79db9aa9e171c310b69b93a12f549bc2ce00533a8efa14e'), -('includes/language.inc', '77ef0c210a8f01d4ad24b13b147db3db0dcef801dbae8b644124cedd562a8a57'), -('includes/locale.inc', '8cc571c114587f2b30e4e24db17e97e51e81f9cc395fa01f348aba12cee8523e'), -('includes/lock.inc', 'daa62e95528f6b986b85680b600a896452bf2ce6f38921242857dcc5a3460a1b'), -('includes/mail.inc', '8b37b30d82941010eacf8f435abbf9cb5b6cfc2710c3446a5037192ae14d68bf'), -('includes/menu.inc', '3183e10659511cd5ad290c6a74bad9601a08827e7e6e025fcfd2cf9eea18cff0'), -('includes/module.inc', 'ca3f2e6129181bbbc67e5e6058a882047f2152174ec8e95c0ea99ce610ace4d7'), -('includes/pager.inc', '6f9494b85c07a2cc3be4e54aff2d2757485238c476a7da084d25bde1d88be6d8'), -('includes/password.inc', '7550ac434a929562a3380e82c546afbf9163598b22f2351f0e7d3f19567fb6c9'), -('includes/path.inc', 'd20d3efabcb752fcafafc887fc0f09704d87000742302f95cf58e62333d05279'), -('includes/registry.inc', '4ffb8c9c8c179c1417ff01790f339edf50b5f7cc0c8bb976eef6858cc71e9bc8'), -('includes/session.inc', '65764101f3746e25210e8a91a9c058218c83c7bf444051ba339c412a2d2bff63'), -('includes/stream_wrappers.inc', 'b04e31585a9a397b0edf7b3586050cbd4b1f631e283296e1c93f4356662faeb9'), -('includes/tablesort.inc', '4cb2a5a2d41b2a204a13f59085096e3f64237d32639ea5d30752905099bc7540'), -('includes/theme.inc', '7fc0ffea33bf25419adb89b91f0fc892c183cd0db41e4f00958694b6f03e7335'), -('includes/theme.maintenance.inc', '39f068b3eee4d10a90d6aa3c86db587b6d25844c2919d418d34d133cfe330f5a'), -('includes/token.inc', '5e7898cd78689e2c291ed3cd8f41c032075656896f1db57e49217aac19ae0428'), -('includes/unicode.entities.inc', '2b858138596d961fbaa4c6e3986e409921df7f76b6ee1b109c4af5970f1e0f54'), -('includes/unicode.inc', '518ad21bd4f43814277d67f76ff8eb2b99bd1be4caa5e02b6e5f06cf65d84eb0'), -('includes/update.inc', '177ce24362efc7f28b384c90a09c3e485396bbd18c3721d4b21e57dd1733bd92'), -('includes/updater.inc', 'd2da0e74ed86e93c209f16069f3d32e1a134ceb6c06a0044f78e841a1b54e380'), -('includes/utility.inc', '3458fd2b55ab004dd0cc529b8e58af12916e8bd36653b072bdd820b26b907ed5'), -('includes/xmlrpc.inc', 'c5b6ea78adeb135373d11aeaaea057d9fa8995faa4e8c0fec9b7c647f15cc4e0'), -('includes/xmlrpcs.inc', '79dc6e9882f4c506123d7dd8e228a61e22c46979c3aab21a5b1afa315ef6639c'), -('modules/block/block.test', '7aefd627d62b44f9c1e9ee3aa9da6c6e2a7cfce01c6613e8bd24c0b9c464dd73'), -('modules/blog/blog.test', '12dc3105782db5fb0df00ff4872561dd049f242eeeb65c979cf349aa75aa1a51'), -('modules/color/color.test', '013806279bd47ceb2f82ca854b57f880ba21058f7a2592c422afae881a7f5d15'), -('modules/comment/comment.module', '966005005058b4df64d515ce2a6049843b2085fc8c2067a2e8ccd59d85d054e9'), -('modules/comment/comment.test', '5404277c15b1306a1ad5eca6703f7d2003567fea6085ffd2b1c3d65896acdf21'), -('modules/contact/contact.test', 'd49eedd71859fbb6ffa26b87226f640db56694c8f43c863c83d920cf3632f9ad'), -('modules/contextual/contextual.test', '023dafa199bd325ecc55a17b2a3db46ac0a31e23059f701f789f3bc42427ba0b'), -('modules/dashboard/dashboard.test', '270378b5c8ed0e7d0e00fbc62e617813c6dec1d79396229786942bf9fb738e16'), -('modules/dblog/dblog.test', 'c2bf857ac110f03b3fbb3469bcbad86e86b506f04153c6372de896fa26c0b3e6'), -('modules/field/field.attach.inc', '25d05fb8ab30ba559051ca2034ea7e61bd1326cacb12dfeb865e90e2ffd147e6'), -('modules/field/field.info.class.inc', 'c2e4bc67ef51e4956c913be772914b1b2625aa5066ab67c74baf6404ed538174'), -('modules/field/field.module', 'd2d9b9b324c256ca11e117f84afd9722c5271887a57497e2dd1f339adae7c12d'), -('modules/field/modules/field_sql_storage/field_sql_storage.test', '35c9c300bc922d3a7c40516ad0ddeb7dc0ef02dd6b7f3f12b4820c41ce912593'), -('modules/field/modules/list/tests/list.test', '97e55bd49f6f4b0562d04aa3773b5ab9b35063aee05c8c7231780cdcf9c97714'), -('modules/field/modules/number/number.test', '9ccf835bbf80ff31b121286f6fbcf59cc42b622a51ab56b22362b2f55c656e18'), -('modules/field/modules/options/options.test', '360c5d3028036423106445eedde49827c75f3ba609186d349e1d0b1353183c18'), -('modules/field/modules/text/text.test', 'a1e5cb0fa8c0651c68d560d9bb7781463a84200f701b00b6e797a9ca792a7e42'), -('modules/field/tests/field.test', '73bc91bbb405f25021340c887f218ea3d1b38473599c234e4c90454e08db63e9'), -('modules/field_ui/field_ui.test', 'da42e28d6f32d447b4a6e5b463a2f7d87d6ce32f149de04a98fa8e3f286c9f68'), -('modules/file/tests/file.test', 'ca4f55f72e76eb1d8a5016f02b3ce3c67efbb3b49646d70ad0ff2248d6f77c38'), -('modules/filter/filter.test', '184fa79a4802b3903844d35a63fd065ba3d8d025ba39a70cf3ff0ac1ef108bb4'), -('modules/help/help.test', 'bc934de8c71bd9874a05ccb5e8f927f4c227b3b2397d739e8504c8fd6ae5a83c'), -('modules/image/image.test', '9c064ef1b09c6e67f4a038d0511cba1cc784df280ada8f89d81eda2ecf214b11'), -('modules/menu/menu.test', '22a7d2b0e4819a670521c562fa868732b485dff2b58beca1896466ad62bffe44'), -('modules/node/node.module', '24bd6dbfa9fd1046baacc4590e9e18622b844278c10b4a1919902299325d09ee'), -('modules/node/node.test', '02eaf0f65000e2ed0d727ae8880d2e7d9ff8ba5e43ed605650770a75504ee04d'), -('modules/path/path.test', '2004183b2c7c86028bf78c519c6a7afc4397a8267874462b0c2b49b0f8c20322'), -('modules/php/php.test', 'd234f9c1ab18a05834a3cb6dc532fb4c259aa25612551f953ba6e3bb714657b8'), -('modules/rdf/rdf.test', 'd586b165925f65c98adcc0ad1eb24b05e2803ea92f1acca351b3ce2dc8932f43'), -('modules/search/search.extender.inc', 'fea036745113dca3fea52ba956af605c4789f4acfa2ab1650a5843c6e173d7fe'), -('modules/search/search.test', '765220b310a8c20cdae1a0cb32405de5f3474b65ba5a2ceccd035f7fa1b828ba'), -('modules/shortcut/shortcut.test', '0d78280d4d0a05aa772218e45911552e39611ca9c258b9dd436307914ac3f254'), -('modules/system/system.archiver.inc', 'faa849f3e646a910ab82fd6c8bbf0a4e6b8c60725d7ba81ec0556bd716616cd1'), -('modules/system/system.mail.inc', '3c2c06b55bded609e72add89db41af3bb405d42b9553793acba5fe51be8861d8'), -('modules/system/system.queue.inc', 'ef00fd41ca86de386fa134d5bc1d816f9af550cf0e1334a5c0ade3119688ca3c'), -('modules/system/system.tar.inc', '8a31d91f7b3cd7eac25b3fa46e1ed9a8527c39718ba76c3f8c0bbbeaa3aa4086'), -('modules/system/system.test', '459ab9edeb638b76a35a5a751b517844d2f380724de8e469e43fc59599e53ddc'), -('modules/system/system.updater.inc', '338cf14cb691ba16ee551b3b9e0fa4f579a2f25c964130658236726d17563b6a'), -('modules/taxonomy/taxonomy.module', '037a417dd82a22b6e6ac6bf2bc1f724e7f744ade8c9a25ffd277535e9677525f'), -('modules/taxonomy/taxonomy.test', '966f863d207701e81f8166f726546ef8627b9dff7612c80cdca79b1a1a33620c'), -('modules/update/update.test', '1ea3e22bd4d47afb8b2799057cdbdfbb57ce09013d9d5f2de7e61ef9c2ebc72d'), -('modules/user/user.module', 'bb7081d863fc9e05c1417344482a661ad68d9ea674c5cf4afc609c0de94c2add'), -('modules/user/user.test', 'e65ff6ba03c4b4afbc9a5e13a1b980749c1e711e7d9aa1052b5a6e534d68a47e'), -('sites/all/modules/libraries/tests/libraries.test', '8a0028a19ddbc0c457465bf024c3ba047569df7ae968303587030ef36c9ead83'); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `role` --- - -CREATE TABLE IF NOT EXISTS `role` ( + +DROP TABLE IF EXISTS `role`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `role` ( `rid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique role ID.', `name` varchar(64) NOT NULL DEFAULT '' COMMENT 'Unique role name.', `weight` int(11) NOT NULL DEFAULT '0' COMMENT 'The weight of this role in listings and the user interface.', PRIMARY KEY (`rid`), UNIQUE KEY `name` (`name`), KEY `name_weight` (`name`,`weight`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores user roles.' AUTO_INCREMENT=4 ; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='Stores user roles.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `role` +-- Dumping data for table `role` -- -INSERT INTO `role` (`rid`, `name`, `weight`) VALUES -(3, 'administrator', 2), -(1, 'anonymous user', 0), -(2, 'authenticated user', 1); - --- -------------------------------------------------------- +LOCK TABLES `role` WRITE; +/*!40000 ALTER TABLE `role` DISABLE KEYS */; +INSERT INTO `role` VALUES (3,'administrator',2),(1,'anonymous user',0),(2,'authenticated user',1); +/*!40000 ALTER TABLE `role` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `role_permission` +-- Table structure for table `role_permission` -- -CREATE TABLE IF NOT EXISTS `role_permission` ( +DROP TABLE IF EXISTS `role_permission`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `role_permission` ( `rid` int(10) unsigned NOT NULL COMMENT 'Foreign Key: role.rid.', `permission` varchar(128) NOT NULL DEFAULT '' COMMENT 'A single permission granted to the role identified by rid.', `module` varchar(255) NOT NULL DEFAULT '' COMMENT 'The module declaring the permission.', PRIMARY KEY (`rid`,`permission`), KEY `permission` (`permission`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores the permissions assigned to user roles.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `role_permission` +-- +LOCK TABLES `role_permission` WRITE; +/*!40000 ALTER TABLE `role_permission` DISABLE KEYS */; +INSERT INTO `role_permission` VALUES (1,'access comments','comment'),(1,'access content','node'),(1,'access site-wide contact form','contact'),(1,'search content','search'),(1,'use advanced search','search'),(1,'use text format filtered_html','filter'),(2,'access comments','comment'),(2,'access content','node'),(2,'access site-wide contact form','contact'),(2,'post comments','comment'),(2,'search content','search'),(2,'use advanced search','search'),(2,'use text format filtered_html','filter'),(3,'access administration pages','system'),(3,'access comments','comment'),(3,'access content','node'),(3,'access content overview','node'),(3,'access contextual links','contextual'),(3,'access dashboard','dashboard'),(3,'access overlay','overlay'),(3,'access site in maintenance mode','system'),(3,'access site reports','system'),(3,'access site-wide contact form','contact'),(3,'access toolbar','toolbar'),(3,'access user contact forms','contact'),(3,'access user profiles','user'),(3,'administer actions','system'),(3,'administer blocks','block'),(3,'administer comments','comment'),(3,'administer contact forms','contact'),(3,'administer content types','node'),(3,'administer fields','field'),(3,'administer filters','filter'),(3,'administer image styles','image'),(3,'administer menu','menu'),(3,'administer modules','system'),(3,'administer nodes','node'),(3,'administer permissions','user'),(3,'administer search','search'),(3,'administer shortcuts','shortcut'),(3,'administer site configuration','system'),(3,'administer software updates','system'),(3,'administer taxonomy','taxonomy'),(3,'administer themes','system'),(3,'administer url aliases','path'),(3,'administer users','user'),(3,'block IP addresses','system'),(3,'bypass node access','node'),(3,'cancel account','user'),(3,'change own username','user'),(3,'create article content','node'),(3,'create page content','node'),(3,'create url aliases','path'),(3,'customize shortcut links','shortcut'),(3,'delete any article content','node'),(3,'delete any page content','node'),(3,'delete own article content','node'),(3,'delete own page content','node'),(3,'delete revisions','node'),(3,'delete terms in 1','taxonomy'),(3,'edit any article content','node'),(3,'edit any page content','node'),(3,'edit own article content','node'),(3,'edit own comments','comment'),(3,'edit own page content','node'),(3,'edit terms in 1','taxonomy'),(3,'post comments','comment'),(3,'revert revisions','node'),(3,'search content','search'),(3,'select account cancellation method','user'),(3,'skip comment approval','comment'),(3,'switch shortcut sets','shortcut'),(3,'use advanced search','search'),(3,'use PHP for settings','php'),(3,'use text format filtered_html','filter'),(3,'use text format full_html','filter'),(3,'view own unpublished content','node'),(3,'view revisions','node'),(3,'view the administration theme','system'); +/*!40000 ALTER TABLE `role_permission` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `search_dataset` -- --- Άδειασμα δεδομένων του πίνακα `role_permission` --- - -INSERT INTO `role_permission` (`rid`, `permission`, `module`) VALUES -(1, 'access comments', 'comment'), -(1, 'access content', 'node'), -(1, 'access site-wide contact form', 'contact'), -(1, 'search content', 'search'), -(1, 'use advanced search', 'search'), -(1, 'use text format filtered_html', 'filter'), -(2, 'access comments', 'comment'), -(2, 'access content', 'node'), -(2, 'access site-wide contact form', 'contact'), -(2, 'post comments', 'comment'), -(2, 'search content', 'search'), -(2, 'use advanced search', 'search'), -(2, 'use text format filtered_html', 'filter'), -(3, 'access administration pages', 'system'), -(3, 'access comments', 'comment'), -(3, 'access content', 'node'), -(3, 'access content overview', 'node'), -(3, 'access contextual links', 'contextual'), -(3, 'access dashboard', 'dashboard'), -(3, 'access overlay', 'overlay'), -(3, 'access site in maintenance mode', 'system'), -(3, 'access site reports', 'system'), -(3, 'access site-wide contact form', 'contact'), -(3, 'access toolbar', 'toolbar'), -(3, 'access user contact forms', 'contact'), -(3, 'access user profiles', 'user'), -(3, 'administer actions', 'system'), -(3, 'administer blocks', 'block'), -(3, 'administer comments', 'comment'), -(3, 'administer contact forms', 'contact'), -(3, 'administer content types', 'node'), -(3, 'administer filters', 'filter'), -(3, 'administer image styles', 'image'), -(3, 'administer menu', 'menu'), -(3, 'administer modules', 'system'), -(3, 'administer nodes', 'node'), -(3, 'administer permissions', 'user'), -(3, 'administer search', 'search'), -(3, 'administer shortcuts', 'shortcut'), -(3, 'administer site configuration', 'system'), -(3, 'administer software updates', 'system'), -(3, 'administer taxonomy', 'taxonomy'), -(3, 'administer themes', 'system'), -(3, 'administer url aliases', 'path'), -(3, 'administer users', 'user'), -(3, 'block IP addresses', 'system'), -(3, 'bypass node access', 'node'), -(3, 'cancel account', 'user'), -(3, 'change own username', 'user'), -(3, 'create article content', 'node'), -(3, 'create page content', 'node'), -(3, 'create url aliases', 'path'), -(3, 'customize shortcut links', 'shortcut'), -(3, 'delete any article content', 'node'), -(3, 'delete any page content', 'node'), -(3, 'delete own article content', 'node'), -(3, 'delete own page content', 'node'), -(3, 'delete revisions', 'node'), -(3, 'delete terms in 1', 'taxonomy'), -(3, 'edit any article content', 'node'), -(3, 'edit any page content', 'node'), -(3, 'edit own article content', 'node'), -(3, 'edit own comments', 'comment'), -(3, 'edit own page content', 'node'), -(3, 'edit terms in 1', 'taxonomy'), -(3, 'post comments', 'comment'), -(3, 'revert revisions', 'node'), -(3, 'search content', 'search'), -(3, 'select account cancellation method', 'user'), -(3, 'skip comment approval', 'comment'), -(3, 'switch shortcut sets', 'shortcut'), -(3, 'use advanced search', 'search'), -(3, 'use PHP for settings', 'php'), -(3, 'use text format filtered_html', 'filter'), -(3, 'use text format full_html', 'filter'), -(3, 'view own unpublished content', 'node'), -(3, 'view revisions', 'node'), -(3, 'view the administration theme', 'system'); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `search_dataset` --- - -CREATE TABLE IF NOT EXISTS `search_dataset` ( + +DROP TABLE IF EXISTS `search_dataset`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `search_dataset` ( `sid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Search item ID, e.g. node ID for nodes.', `type` varchar(16) NOT NULL COMMENT 'Type of item, e.g. node.', `data` longtext NOT NULL COMMENT 'List of space-separated words from the item.', `reindex` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Set to force node reindexing.', PRIMARY KEY (`sid`,`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores items that will be searched.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `search_dataset` +-- Dumping data for table `search_dataset` -- -INSERT INTO `search_dataset` (`sid`, `type`, `data`, `reindex`) VALUES -(1, 'node', ' about us lorem ipsum dolor sit amet consectetur adipiscing elit proin fermentum consequat eros cursus fringilla odio rhoncus at aliquam pellentesque blandit urna nec pulvinar ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra praesent tincidunt magna enim morbi gravida mauris eget urna rhoncus blandit cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend aenean aucibus ultrices mi et tristique pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestasproin in tempor enimclass aptent taciti sociosqu ad litora torquent per conubia nostra per inceptos himenaeosvestibulum eu tincidunt mauris in tempus odio sit amet odio pellentesque sollicitudin vestibulum pretium metus a enim semper blandit maecenas sollicitudin ornare libero eu pharetra etiam metus risus posuere sit amet volutpat vitae placerat sed ligula morbi ipsum mi interdum sed lementum ac sollicitudin vel urna vestibulum sed congue magna integer velit diam porttitor tempor luctus at adipiscing eget nulla vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae nulla faucibus est eget ullamcorper condimentum enim nisl luctus sem sit amet mollis orci eros eget quam donec et augue libero cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus mus aliquam dictum consequat porta lorem ipsum dolor sit amet consectetur adipiscing elit vivamus iaculis rutrum orci id hendrerit sapien imperdiet id quisque eu nibh enim ac aliquam nunc integer ultricies cursus mattis donec tristique est ac massa vehicula non sollicitudin odio blandit nam lacus purus vulputate et viverra ac mattis congue nunc donec aliquam sagittis porttitor aenean sit amet orci ac neque posuere tristique morbi mollis nisi eu varius laoreet quam lacus venenatis mauris non commodo lectus eros vitae ipsum nam non neque nunc tincidunt molestie tortor nulla tristique dolor at nisi tempor pretium phasellus non nisl nec mauris rhoncus iaculis cras vel orci sapien vitae viverra diam morbi sodales enim ut neque sagittis pellentesque aliquam erat volutpat curabitur nisl libero vehicula vel blandit vitae pharetra eu nulla aliquam eu lectus eget metus condimentum bibendum nullam sapien nulla consectetur vitae vestibulum in cursus et nunc aliquam ipsum risus tincidunt at sagittis vel commodo non lectus nulla mollis fermentum nunc praesent interdum fringilla nisl curabitur volutpat massa eu felis ultrices sodales donec rhoncus diamvel interdum elementum turpis neque volutpat orci eu molestie magna duiid justo ut sodales fringilla ante ullamcorper elementum lectus ullamcorper euismod vestibulum scelerisque ornare magna at egestas donec in tellus est nullam egestas tincidunt pretium nunc id diam id felis dapibus euismod sed feugiat lacinia eros sed interdum nunc porttitor et mauris a justo sit amet turpis convallis rhoncus suspendisse tincidunt neque ac libero varius volutpat suspendisse quis ipsum leo ', 0), -(2, 'node', ' sample page this is an example page it s different from a blog post because it will stay in one place and will show up in your site navigation in most themes most people start with an about page that introduces them to potential site visitors it might say something like this news ', 0), -(3, 'node', ' in egestas porta tortor sed imperdiet lorem ipsum dolor sit amet consectetur adipiscing elit donec facilisis accumsan scelerisque ut sed convallis purus fusce pretium molestie vestibulum aliquam erat volutpat etiam tempor hendrerit venenatis aenean elementum mi id lorem blandit a eleifend mi ornare morbi ornare laoreet semper nulla facilisi cras posuere congue sem in rhoncus pellentesque at fermentum quam donec eros ante cursus non malesuada at sodales in dui sed faucibus dui in tellus tempor at venenatis nisi tempor cras fringilla auctor urna sit amet bibendum praesent egestas dignissim urna id vestibulum maecenas nec neque a justo tincidunt dictum nulla hendrerit vestibulum adipiscing donec fermentum odio et turpis vestibulum iaculis donec lacus ipsum commodo et ullamcorper sed fermentum eget est phasellus nisl lectus hendrerit vitae pellentesque ac interdum non justo sed rhoncus mollis porta vivamus nec tincidunt turpis donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis fusce orci velit aliquam pellentesque commodo at rhoncus non eros in egestas porta tortor sed imperdiet sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus vivamus ac odio dolor nunc non lectus sapien quisque rutrum ante vitae vestibulum eleifend mauris leo feugiat neque vitae tempor lacus ante porttitor sapien aliquam in sem nec elit sollicitudin ultrices egestas quis odio sed facilisis risus dignissim augue luctus pulvinar nullam consequat fringilla ullamcorper suspendisse potenti nulla lorem nisl vehicula et blandit nec imperdiet in elit vivamus id ante neque vel vulputate dui maecenas et dui justo ut ultrices lobortis elit vel posuere quisque neque massa interdum eu dapibus blandit vehicula in lacus aenean ac dolor lectus suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum donec mollis suscipit justo sed pulvinar diam rhoncus nec suspendisse ac eros elit in ullamcorper quam nulla tincidunt molestie odio et commodo risus facilisis ac nullam mattis risus id cursus consequat ipsum mauris tincidunt purus quis placerat nulla nunc at diam proin ut nulla quis augue mollis sodales curabitur nec urna erat donec eget nulla eget quam dapibus varius commodo malesuada urna aenean sodales rhoncus sagittis mauris eget iaculis felis in hac habitasse platea dictumst admin s blog uncategorized ', 0), -(4, 'node', ' nulla hendrerit vestibulum adipiscing lorem ipsum dolor sit amet consectetur adipiscing elit proin fermentum consequat eros cursus fringilla odio rhoncus at aliquam pellentesque blandit urna nec pulvinar ut luctus libero sed mauris rhoncus sit amet consequat dui pharetra praesent tincidunt magna enim morbi gravida mauris eget urna rhoncus blandit cras iaculis nisi et ante condimentum vel ullamcorper quam eleifend aenean faucibus ultrices mi et tristique pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestasproin in tempor enim class aptent taciti sociosqu ad litora torquent per conubia nostra per inceptos himenaeos vestibulum eu tincidunt mauris in tempus odio sit amet odio pellentesque sollicitudin vestibulum pretium metus a enim semper blandit maecenas sollicitudin ornare libero eu pharetra etiam metus risus posuere sit amet volutpat vitae placerat sed ligula morbi ipsum mi interdum sed elementum ac sollicitudin vel urna vestibulum sed congue magna integer velit diam porttitor tempor luctus at adipiscing eget nulla vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae nulla faucibus est eget ullamcorper condimentum enim nisl luctus sem sit amet mollis orci eros eget quam donec et augue libero cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus musaliquam dictum consequat portalorem ipsum dolor sit amet consectetur adipiscing elit vivamus iaculis rutrum orci id hendrerit sapien imperdiet id quisque eu nibh enim ac aliquam nunc integer ultricies cursus mattis donec tristique est ac massa vehicula non sollicitudin odio blandit nam lacus purus vulputate et viverra ac mattis congue nunc donec aliquam sagittis porttitor aenean sit amet orci ac neque posuere tristique morbi mollis nisi eu varius laoreet quam lacus venenatis mauris non commodo lectus eros vitae ipsum nam non neque nunc tincidunt molestie tortor nulla tristique dolor at nisi tempor pretium phasellus non nisl nec mauris rhoncus iaculiscras vel orci sapien vitae viverra diam morbi sodales enim ut neque sagittis pellentesque aliquam erat volutpat curabitur nisl libero vehicula vel blandit vitae pharetra eu nulla aliquam eu lectus eget metus condimentum bibendum nullam sapien nulla consectetur vitae vestibulum in cursus et nunc aliquam ipsum risus tincidunt at sagittis vel commodo non lectus nulla mollis fermentum nunc praesent interdum fringilla nisl curabitur volutpat massa eu felis ultrices sodales donec rhoncus diam vel interdum elementum turpis neque volutpat orci eu molestie magna dui id justo ut sodales fringilla ante ullamcorper elementum lectus ullamcorper euismod vestibulum scelerisque ornare magna at egestas donec in tellus est nullam egestas tincidunt pretium nunc id diam id felis dapibus euismod sed feugiat lacinia eros sed interdum nunc porttitor et mauris a justo sit amet turpis convallis rhoncus suspendisse tincidunt neque ac libero varius volutpat suspendisse quis ipsum leo admin s blog news ', 0), -(5, 'node', ' donec fermentum odio et turpis lorem ipsum dolor sit amet consectetur adipiscing elit donec facilisis accumsan scelerisque ut sed convallis purus fusce pretium molestie vestibulum aliquam erat volutpat etiam tempor hendrerit venenatis aenean elementum mi id lorem blandit a eleifend mi ornare morbi ornare laoreet semper nulla facilisi cras posuere congue sem in rhoncus pellentesque at fermentum quam donec eros ante cursus non malesuada at sodales in dui sed faucibus dui in tellus tempor at venenatis nisi tempor cras fringilla auctor urna sit amet bibendum praesent egestas dignissim urna id vestibulum maecenas nec neque a justo tincidunt dictum nulla hendrerit vestibulum adipiscing donec fermentum odio et turpis vestibulum iaculis donec lacus ipsum commodo et ullamcorper sed fermentum eget est phasellus nisl lectus hendrerit vitae pellentesque ac interdum non justo sed rhoncus mollis porta vivamus nec tincidunt turpis donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis fusce orci velit aliquam pellentesque commodo at rhoncus non eros in egestas porta tortor sed imperdiet sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus vivamus ac odio dolor nunc non lectus sapien quisque rutrum ante vitae vestibulum eleifend mauris leo feugiat neque vitae tempor lacus ante porttitor sapien aliquam in sem nec elit sollicitudin ultrices egestas quis odio sed facilisis risus dignissim augue luctus pulvinar nullam consequat fringilla ullamcorper suspendisse potenti nulla lorem nisl vehicula et blandit nec imperdiet in elit admin s blog uncategorized admin permalink march 19th 2013 test comment test comment sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti log in or register to post comments ', 0), -(6, 'node', ' sed rhoncus mollis porta nulla hendrerit vestibulum adipiscing donec fermentum odio et turpis vestibulum iaculis donec lacus ipsum commodo et ullamcorper sed fermentum eget est phasellus nisl lectus hendrerit vitae pellentesque ac interdum non justo sed rhoncus mollis porta vivamus nec tincidunt turpis donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis fusce orci velit aliquam pellentesque commodo at rhoncus non eros in egestas porta tortor sed imperdiet sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus vivamus ac odio dolor nunc non lectus sapien quisque rutrum ante vitae vestibulum eleifend mauris leo feugiat neque vitae tempor lacus ante porttitor sapien aliquam in sem nec elit sollicitudin ultrices egestas quis odio sed facilisis risus dignissim augue luctus pulvinar nullam consequat fringilla ullamcorper suspendisse potenti nulla lorem nisl vehicula et blandit nec imperdiet in elit admin s blog events ', 0), -(7, 'node', ' vivamus id ante neque nulla hendrerit vestibulum adipiscing donec fermentum odio et turpis vestibulum iaculis donec lacus ipsum commodo et ullamcorper sed fermentum eget est phasellus nisl lectus hendrerit vitae pellentesque ac interdum non justo sed rhoncus mollis porta vivamus nec tincidunt turpis donec iaculis sem eu ante porttitor condimentum condimentum nisi iaculis fusce orci velit aliquam pellentesque commodo at rhoncus non eros in egestas porta tortor sed imperdiet sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus vivamus ac odio dolor nunc non lectus sapien quisque rutrum ante vitae vestibulum eleifend mauris leo feugiat neque vitae tempor lacus ante porttitor sapien aliquam in sem nec elit sollicitudin ultrices egestas quis odio sed facilisis risus dignissim augue luctus pulvinar nullam consequat fringilla ullamcorper suspendisse potenti nulla lorem nisl vehicula et blandit nec imperdiet in elit vivamus id ante neque vel vulputate dui maecenas et dui justo ut ultrices lobortis elit vel posuere quisque neque massa interdum eu dapibus blandit vehicula in lacus aenean ac dolor lectus suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum donec mollis suscipit justo sed pulvinar diam rhoncus nec suspendisse ac eros elit in ullamcorper quam nulla tincidunt molestie odio et commodo risus facilisis ac admin s blog news admin permalink march 18th 2013 fbortis feugiat turpis id fbortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti log in or register to post comments admin permalink march 18th 2013 sed lobortis feugiat turpis sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti morbi mollis magna rutrum augue vestibulum quis facilisis dolor tempus sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti log in or register to post comments admin permalink march 18th 2013 test reply test reply sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti log in or register to post comments ', 0), -(8, 'node', ' typography lorem ipsum dolor sit amet consectetuer adipiscing elit donec odio quisque volutpat mattis eros nullam malesuada erat ut turpis suspendisse urna nibh viverra non semper suscipit posuere a pede blockquote lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua ut enim ad minim veniam quis nostrud exercitation ullamco header 2 lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua linked header 2 lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua header 3 lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua header 4 lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua code snippet header h1 a display block height 80px width 300px drupal s messages sample status message page typography has been updated lorem ipsum dolor sit amet consectetuer adipiscing elit donec odio quisque volutpat mattis eros nullam malesuada erat ut turpis suspendisse urna nibh viverra non semper suscipit posuere a pede sample error message there is a security update available for your version of drupal to ensure the security of your server you should update immediately see the available updates page for more information sample warning message lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua paragraph with links lorem ipsum dolor sit amet consectetuer adipiscing elit donec odio quisque volutpat mattis eros nullam malesuada erat ut turpis suspendisse urna nibh viverra non semper suscipit posuere a pede ordered list this is a sample ordered list lorem ipsum dolor sit amet consectetuer condimentum quis congue quisque augue elit dolor something goes here and another here then one more congue quisque augue elit dolor nibh unordered list this is a sample unordered list condimentum quis congue quisque augue elit dolor something goes here and another here something here as well something here as well something here as well then one more nunc cursus sem et pretium sapien eget fieldset account information table header 1 header 2 row 1 cell 1 row 1 cell 2 row 2 cell 1 row 2 cell 2 row 3 cell 1 row 3 cell 2 ', 0), -(9, 'node', ' columns two column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum two column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum first column div class onehalf content here div second column div class onehalf last content here div top three column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum three column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum three column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum first column div class onethird content here div second column div class onethird content here div third column div class onethird last content here div top four column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum four column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum four column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum four column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum first column div class onefourth content here div fourth column div class onefourth last content here div top six column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum six column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum six column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum six column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum six column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum six column lorem ipsum dolor sit amet consectetur adipiscing elit maecenas ac mi ut nisi dignissim hendrerit cras pharetra nibh lacinia nisi varius vestibulum first column div class onesixth content here div sixth column div class onesixth last content here div ', 0), -(10, 'node', ' lists styles this is item one this is item two this is item three div class ticklist list here div this is item one this is item two this is item three div class crosslist list here div this is item one this is item two this is item three div class starlist list here div this is item one this is item two this is item three div class exclamlist list here div this is item one this is item two this is item three div class addlist list here div this is item one this is item two this is item three div class blacklist list here div this is item one this is item two this is item three div class bluelist list here div this is item one this is item two this is item three div class starlist list here div this is item one this is item two this is item three div class deletelist list here div this is item one this is item two this is item three div class errorlist list here div this is item one this is item two this is item three div class idealist list here div this is item one this is item two this is item three div class keylist list here div this is item one this is item two this is item three div class newlist list here div this is item one this is item two this is item three div class orangelist list here div this is item one this is item two this is item three div class pinklist list here div this is item one this is item two this is item three div class pluslist list here div this is item one this is item two this is item three div class purplelist list here div this is item one this is item two this is item three div class redlist list here div this is item one this is item two this is item three div class taglist list here div this is item one this is item two this is item three div class vcardlist list here div this is item one this is item two this is item three div class yellowlist list here div this is item one this is item two this is item three div class greenlist list here div ', 0), -(11, 'node', ' message boxes lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class successbox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class ideabox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class okbox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class questionbox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class searchbox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class eventbox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class thumbsupbox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class cancelbox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class addbox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class warningbox text here div lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class emptybox text here div ', 0), -(12, 'node', ' portofolio all illustration web view image integer velit diam illustration web view image vivamus ac odio dolor illustration view image nulla mollis fermentum nunc illustration view image cras vel orci sapien illustration web view image blackberry website project web view image vestibulum ante ipsum primis illustration view image curabitur nisl libero web view image aliquam erat volutpat web ', 0), -(13, 'node', ' portofolio full width all illustration web view image integer velit diam illustration web view image vivamus ac odio dolor illustration view image nulla mollis fermentum nunc illustration view image cras vel orci sapien illustration web view image blackberry website project web view image vestibulum ante ipsum primis illustration view image curabitur nisl libero web view image aliquam erat volutpat web ', 0), -(14, 'node', ' integer velit diam ut ultrices lobortis elit vel posuere quisque neque massa interdum eu dapibus blandit vehicula in lacus aenean ac dolor lectus suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum donec mollis suscipit justo sed pulvinar diam rhoncus nec suspendisse ac eros elit in ullamcorper quam nulla tincidunt molestie odio et commodo risus facilisis ac integer velit diam curabitur nisl libero integer velit diam curabitur nisl libero ', 0), -(15, 'node', ' vivamus ac odio dolor ut ultrices lobortis elit vel posuere quisque neque massa interdum eu dapibus blandit vehicula in lacus aenean ac dolor lectus suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum donec mollis suscipit justo sed pulvinar diam rhoncus nec suspendisse ac eros elit in ullamcorper quam nulla tincidunt molestie odio et commodo risus facilisis ac vivamus odio dolor cras vel orci sapien vivamus odio dolor cras vel orci sapien ', 0), -(16, 'node', ' nulla mollis fermentum nunc ut ultrices lobortis elit vel posuere quisque neque massa interdum eu dapibus blandit vehicula in lacus aenean ac dolor lectus suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum donec mollis suscipit justo sed pulvinar diam rhoncus nec suspendisse ac eros elit in ullamcorper quam nulla tincidunt molestie odio et commodo risus facilisis ac nulla mollis fermentum nunc nulla mollis fermentum nunc ', 0), -(17, 'node', ' blackberry website project ut ultrices lobortis elit vel posuere quisque neque massa interdum eu dapibus blandit vehicula in lacus aenean ac dolor lectus suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum donec mollis suscipit justo sed pulvinar diam rhoncus nec suspendisse ac eros elit in ullamcorper quam nulla tincidunt molestie odio et commodo risus facilisis ac blackberry website project aliquam erat volutpat blackberry website project aliquam erat volutpat ', 0), -(18, 'node', ' vestibulum ante ipsum primis ut ultrices lobortis elit vel posuere quisque neque massa interdum eu dapibus blandit vehicula in lacus aenean ac dolor lectus suspendisse semper dolor quis nulla tempus ac aliquam dui bibendum donec mollis suscipit justo sed pulvinar diam rhoncus nec suspendisse ac eros elit in ullamcorper quam nulla tincidunt molestie odio et commodo risus facilisis ac vestibulum ante ipsum primis vestibulum ante ipsum primis ', 0), -(19, 'node', ' dropcaps alerts l orem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqualorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class dropcapsimple l div a orem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqualorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua span class dropcapsquare dropcap grey a span b orem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqualorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua span class dropcapfancy dropcap blue b span error message lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqualorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class simpleerror text here div success message lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqualorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class simplesuccess text here div warning message lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqualorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class simplenotice text here div info message lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqualorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua div class simpleinfo text here div ', 0), -(20, 'node', ' morbi ornare laoreet semper lorem ipsum dolor sit amet consectetur adipiscing elit donec facilisis accumsan scelerisque ut sed convallis purus fusce pretium molestie vestibulum aliquam erat volutpat etiam tempor hendrerit venenatis aenean elementum mi id lorem blandit a eleifend mi ornare morbi ornare laoreet semper nulla facilisi cras posuere congue sem in rhoncus pellentesque at fermentum quam donec eros ante cursus non malesuada at sodales in dui sed faucibus dui in tellus tempor at venenatis nisi tempor cras fringilla auctor urna sit amet bibendum praesent egestas dignissim urna id vestibulum admin s blog events admin permalink march 27th 2013 etiam tempor hendrerit etiam tempor hendrerit venenatis aenean elementum mi id lorem blandit a eleifend mi ornare morbi ornare laoreet semper nulla facilisi cras posuere congue sem in rhoncus pellentesque at fermentum quam sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti log in or register to post comments admin permalink april 1st 2013 aenean elementum mi id lorem cras posuere congue sem in rhoncus pellentesque at fermentum quam etiam tempor hendrerit venenatis aenean elementum mi id lorem blandit a eleifend mi ornare morbi ornare laoreet semper nulla facilisi sed lobortis feugiat turpis id molestie integer in adipiscing ipsum sed sit amet orci vitae turpis fringilla placerat suspendisse dignissim tincidunt enim quis ornare suspendisse potenti log in or register to post comments ', 0); - --- -------------------------------------------------------- +LOCK TABLES `search_dataset` WRITE; +/*!40000 ALTER TABLE `search_dataset` DISABLE KEYS */; +/*!40000 ALTER TABLE `search_dataset` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `search_index` +-- Table structure for table `search_index` -- -CREATE TABLE IF NOT EXISTS `search_index` ( +DROP TABLE IF EXISTS `search_index`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `search_index` ( `word` varchar(50) NOT NULL DEFAULT '' COMMENT 'The search_total.word that is associated with the search item.', `sid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The search_dataset.sid of the searchable item to which the word belongs.', `type` varchar(16) NOT NULL COMMENT 'The search_dataset.type of the searchable item to which the word belongs.', @@ -2934,1482 +1810,25 @@ CREATE TABLE IF NOT EXISTS `search_index` ( PRIMARY KEY (`word`,`sid`,`type`), KEY `sid_type` (`sid`,`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores the search index, associating words, items and...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `search_index` +-- +LOCK TABLES `search_index` WRITE; +/*!40000 ALTER TABLE `search_index` DISABLE KEYS */; +/*!40000 ALTER TABLE `search_index` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `search_node_links` -- --- Άδειασμα δεδομένων του πίνακα `search_index` --- - -INSERT INTO `search_index` (`word`, `sid`, `type`, `score`) VALUES -('1', 8, 'node', 5.66759), -('18th', 7, 'node', 2.9537), -('19th', 5, 'node', 0.934703), -('1st', 20, 'node', 1), -('2', 8, 'node', 53.66), -('2013', 5, 'node', 0.931053), -('2013', 7, 'node', 2.9537), -('2013', 20, 'node', 2), -('27th', 20, 'node', 1), -('3', 8, 'node', 17.8842), -('300px', 8, 'node', 1), -('4', 8, 'node', 13), -('80px', 8, 'node', 1), -('about', 1, 'node', 26), -('about', 2, 'node', 1), -('account', 8, 'node', 0.961087), -('accumsan', 3, 'node', 1), -('accumsan', 5, 'node', 1), -('accumsan', 20, 'node', 1), -('addbox', 11, 'node', 1), -('addlist', 10, 'node', 1), -('adipiscing', 1, 'node', 2.9496), -('adipiscing', 3, 'node', 3), -('adipiscing', 4, 'node', 28.9534), -('adipiscing', 5, 'node', 3.92027), -('adipiscing', 6, 'node', 2), -('adipiscing', 7, 'node', 6.9089), -('adipiscing', 8, 'node', 13), -('adipiscing', 9, 'node', 15), -('adipiscing', 20, 'node', 3), -('adipisicing', 8, 'node', 6), -('adipisicing', 11, 'node', 11), -('adipisicing', 19, 'node', 21), -('admin', 3, 'node', 9.85684), -('admin', 4, 'node', 8.86), -('admin', 5, 'node', 25.5608), -('admin', 6, 'node', 11), -('admin', 7, 'node', 58.2592), -('admin', 20, 'node', 43), -('aenean', 1, 'node', 1.88282), -('aenean', 3, 'node', 2.85512), -('aenean', 4, 'node', 1.8894), -('aenean', 5, 'node', 1), -('aenean', 7, 'node', 1), -('aenean', 14, 'node', 1), -('aenean', 15, 'node', 1), -('aenean', 16, 'node', 1), -('aenean', 17, 'node', 1), -('aenean', 18, 'node', 1), -('aenean', 20, 'node', 29), -('alerts', 19, 'node', 26), -('aliqua', 8, 'node', 6), -('aliqua', 11, 'node', 11), -('aliqua', 19, 'node', 14), -('aliqualorem', 19, 'node', 7), -('aliquam', 1, 'node', 6.30321), -('aliquam', 3, 'node', 3.92331), -('aliquam', 4, 'node', 5.36883), -('aliquam', 5, 'node', 2.98493), -('aliquam', 6, 'node', 2), -('aliquam', 7, 'node', 3), -('aliquam', 12, 'node', 2.2), -('aliquam', 13, 'node', 2.2), -('aliquam', 14, 'node', 1), -('aliquam', 15, 'node', 1), -('aliquam', 16, 'node', 1), -('aliquam', 17, 'node', 23), -('aliquam', 18, 'node', 1), -('aliquam', 20, 'node', 1), -('all', 12, 'node', 11), -('all', 13, 'node', 11), -('amet', 1, 'node', 22.6379), -('amet', 3, 'node', 3), -('amet', 4, 'node', 7.65925), -('amet', 5, 'node', 3.92027), -('amet', 6, 'node', 1), -('amet', 7, 'node', 5.9089), -('amet', 8, 'node', 10), -('amet', 9, 'node', 15), -('amet', 11, 'node', 11), -('amet', 19, 'node', 21), -('amet', 20, 'node', 4), -('and', 2, 'node', 1), -('and', 8, 'node', 1.99315), -('another', 8, 'node', 1.99315), -('ante', 1, 'node', 2.8249), -('ante', 3, 'node', 4.93147), -('ante', 4, 'node', 2.83645), -('ante', 5, 'node', 3.97808), -('ante', 6, 'node', 3), -('ante', 7, 'node', 30), -('ante', 12, 'node', 2.2), -('ante', 13, 'node', 2.2), -('ante', 18, 'node', 48), -('ante', 20, 'node', 1), -('april', 20, 'node', 1), -('aptent', 1, 'node', 1), -('aptent', 4, 'node', 1), -('aucibus', 1, 'node', 1), -('auctor', 3, 'node', 1), -('auctor', 5, 'node', 1), -('auctor', 20, 'node', 1), -('augue', 1, 'node', 1), -('augue', 3, 'node', 2.8967), -('augue', 4, 'node', 1), -('augue', 5, 'node', 1.97286), -('augue', 6, 'node', 2), -('augue', 7, 'node', 2.97685), -('augue', 8, 'node', 2.99045), -('available', 8, 'node', 2), -('because', 2, 'node', 1), -('been', 8, 'node', 1), -('bibendum', 1, 'node', 0.845322), -('bibendum', 3, 'node', 1.93838), -('bibendum', 4, 'node', 0.848323), -('bibendum', 5, 'node', 1), -('bibendum', 7, 'node', 1), -('bibendum', 14, 'node', 1), -('bibendum', 15, 'node', 1), -('bibendum', 16, 'node', 1), -('bibendum', 17, 'node', 1), -('bibendum', 18, 'node', 1), -('bibendum', 20, 'node', 1), -('blackberry', 12, 'node', 2.2), -('blackberry', 13, 'node', 2.2), -('blackberry', 17, 'node', 48), -('blacklist', 10, 'node', 1), -('blandit', 1, 'node', 4.74818), -('blandit', 3, 'node', 2.89178), -('blandit', 4, 'node', 4.75807), -('blandit', 5, 'node', 1.9534), -('blandit', 6, 'node', 1), -('blandit', 7, 'node', 2), -('blandit', 14, 'node', 1), -('blandit', 15, 'node', 1), -('blandit', 16, 'node', 1), -('blandit', 17, 'node', 1), -('blandit', 18, 'node', 1), -('blandit', 20, 'node', 3), -('block', 8, 'node', 1), -('blockquote', 8, 'node', 4), -('blog', 2, 'node', 1), -('blog', 3, 'node', 9.81996), -('blog', 4, 'node', 8.83027), -('blog', 5, 'node', 10.4456), -('blog', 6, 'node', 11), -('blog', 7, 'node', 11), -('blog', 20, 'node', 11), -('blue', 19, 'node', 1), -('bluelist', 10, 'node', 1), -('boxes', 11, 'node', 26), -('cancelbox', 11, 'node', 1), -('cell', 8, 'node', 5.65628), -('class', 4, 'node', 1), -('class', 9, 'node', 9), -('class', 10, 'node', 22), -('class', 11, 'node', 11), -('class', 19, 'node', 7), -('code', 8, 'node', 13), -('column', 9, 'node', 159), -('columns', 9, 'node', 26), -('comment', 5, 'node', 24.9401), -('comments', 5, 'node', 0.909743), -('comments', 7, 'node', 2.92663), -('comments', 20, 'node', 2), -('commodo', 1, 'node', 1.70933), -('commodo', 3, 'node', 3.84779), -('commodo', 4, 'node', 1.71868), -('commodo', 5, 'node', 2), -('commodo', 6, 'node', 2), -('commodo', 7, 'node', 3), -('commodo', 14, 'node', 1), -('commodo', 15, 'node', 1), -('commodo', 16, 'node', 1), -('commodo', 17, 'node', 1), -('commodo', 18, 'node', 1), -('condimentum', 1, 'node', 2.84532), -('condimentum', 3, 'node', 2), -('condimentum', 4, 'node', 2.84832), -('condimentum', 5, 'node', 2), -('condimentum', 6, 'node', 2), -('condimentum', 7, 'node', 2), -('condimentum', 8, 'node', 1.99315), -('congue', 1, 'node', 1.8861), -('congue', 3, 'node', 1), -('congue', 4, 'node', 1.89272), -('congue', 5, 'node', 1), -('congue', 8, 'node', 2.99045), -('congue', 20, 'node', 3), -('consectetuer', 8, 'node', 14), -('consectetur', 1, 'node', 2.78898), -('consectetur', 3, 'node', 1), -('consectetur', 4, 'node', 2.79574), -('consectetur', 5, 'node', 1), -('consectetur', 8, 'node', 6), -('consectetur', 9, 'node', 15), -('consectetur', 11, 'node', 11), -('consectetur', 19, 'node', 21), -('consectetur', 20, 'node', 1), -('consequat', 1, 'node', 2.9534), -('consequat', 3, 'node', 1.88852), -('consequat', 4, 'node', 2.95723), -('consequat', 5, 'node', 0.961087), -('consequat', 6, 'node', 1), -('consequat', 7, 'node', 1), -('content', 9, 'node', 9), -('conubia', 1, 'node', 1), -('conubia', 4, 'node', 1), -('convallis', 1, 'node', 0.805455), -('convallis', 3, 'node', 1), -('convallis', 4, 'node', 0.816452), -('convallis', 5, 'node', 1), -('convallis', 20, 'node', 1), -('cras', 1, 'node', 1.85439), -('cras', 3, 'node', 2), -('cras', 4, 'node', 1), -('cras', 5, 'node', 2), -('cras', 9, 'node', 15), -('cras', 12, 'node', 2.2), -('cras', 13, 'node', 2.2), -('cras', 15, 'node', 22), -('cras', 20, 'node', 4), -('crosslist', 10, 'node', 1), -('cubilia', 1, 'node', 1), -('cubilia', 4, 'node', 1), -('cum', 1, 'node', 1), -('cum', 4, 'node', 1), -('curabitur', 1, 'node', 1.68771), -('curabitur', 3, 'node', 0.923838), -('curabitur', 4, 'node', 1.69369), -('curabitur', 12, 'node', 2.2), -('curabitur', 13, 'node', 2.2), -('curabitur', 14, 'node', 22), -('curae', 1, 'node', 1), -('curae', 4, 'node', 1), -('cursus', 1, 'node', 2.75612), -('cursus', 3, 'node', 1.92743), -('cursus', 4, 'node', 2.76618), -('cursus', 5, 'node', 1), -('cursus', 8, 'node', 0.98493), -('cursus', 20, 'node', 1), -('dapibus', 1, 'node', 0.813674), -('dapibus', 3, 'node', 1.86236), -('dapibus', 4, 'node', 0.824901), -('dapibus', 7, 'node', 1), -('dapibus', 14, 'node', 1), -('dapibus', 15, 'node', 1), -('dapibus', 16, 'node', 1), -('dapibus', 17, 'node', 1), -('dapibus', 18, 'node', 1), -('deletelist', 10, 'node', 1), -('diam', 1, 'node', 2.66806), -('diam', 3, 'node', 1.86213), -('diam', 4, 'node', 3.52174), -('diam', 7, 'node', 1), -('diam', 12, 'node', 2.2), -('diam', 13, 'node', 2.2), -('diam', 14, 'node', 49), -('diam', 15, 'node', 1), -('diam', 16, 'node', 1), -('diam', 17, 'node', 1), -('diam', 18, 'node', 1), -('diamvel', 1, 'node', 0.836446), -('dictum', 1, 'node', 0.957226), -('dictum', 3, 'node', 1), -('dictum', 4, 'node', 0.961087), -('dictum', 5, 'node', 1), -('dictumst', 3, 'node', 0.899454), -('different', 2, 'node', 1), -('dignissim', 3, 'node', 2.97286), -('dignissim', 5, 'node', 3.89313), -('dignissim', 6, 'node', 2), -('dignissim', 7, 'node', 6.9089), -('dignissim', 9, 'node', 15), -('dignissim', 20, 'node', 3), -('dis', 1, 'node', 0.980874), -('dis', 4, 'node', 0.98493), -('display', 8, 'node', 1), -('div', 9, 'node', 18), -('div', 10, 'node', 44), -('div', 11, 'node', 22), -('div', 19, 'node', 10), -('dolor', 1, 'node', 2.80705), -('dolor', 3, 'node', 4.87676), -('dolor', 4, 'node', 2.81705), -('dolor', 5, 'node', 3), -('dolor', 6, 'node', 2), -('dolor', 7, 'node', 4.97685), -('dolor', 8, 'node', 12.9905), -('dolor', 9, 'node', 15), -('dolor', 11, 'node', 11), -('dolor', 12, 'node', 2.2), -('dolor', 13, 'node', 2.2), -('dolor', 14, 'node', 2), -('dolor', 15, 'node', 50), -('dolor', 16, 'node', 2), -('dolor', 17, 'node', 2), -('dolor', 18, 'node', 2), -('dolor', 19, 'node', 21), -('dolor', 20, 'node', 1), -('dolore', 8, 'node', 6), -('dolore', 11, 'node', 11), -('dolore', 19, 'node', 21), -('donec', 1, 'node', 4.45222), -('donec', 3, 'node', 6.85865), -('donec', 4, 'node', 4.48014), -('donec', 5, 'node', 31), -('donec', 6, 'node', 3), -('donec', 7, 'node', 4), -('donec', 8, 'node', 3), -('donec', 14, 'node', 1), -('donec', 15, 'node', 1), -('donec', 16, 'node', 1), -('donec', 17, 'node', 1), -('donec', 18, 'node', 1), -('donec', 20, 'node', 2), -('dropcap', 19, 'node', 2), -('dropcapfancy', 19, 'node', 1), -('dropcaps', 19, 'node', 26), -('dropcapsimple', 19, 'node', 1), -('dropcapsquare', 19, 'node', 1), -('drupal', 8, 'node', 14), -('dui', 1, 'node', 1), -('dui', 3, 'node', 4.83004), -('dui', 4, 'node', 1.83938), -('dui', 5, 'node', 2), -('dui', 7, 'node', 3), -('dui', 14, 'node', 1), -('dui', 15, 'node', 1), -('dui', 16, 'node', 1), -('dui', 17, 'node', 1), -('dui', 18, 'node', 1), -('dui', 20, 'node', 2), -('duiid', 1, 'node', 0.830633), -('egestas', 1, 'node', 1.63292), -('egestas', 3, 'node', 28.9769), -('egestas', 4, 'node', 1.65553), -('egestas', 5, 'node', 2.97685), -('egestas', 6, 'node', 2), -('egestas', 7, 'node', 2), -('egestas', 20, 'node', 1), -('egestasproin', 1, 'node', 1), -('egestasproin', 4, 'node', 1), -('eget', 1, 'node', 4.84532), -('eget', 3, 'node', 3.75377), -('eget', 4, 'node', 4.84832), -('eget', 5, 'node', 1), -('eget', 6, 'node', 1), -('eget', 7, 'node', 1), -('eget', 8, 'node', 0.968904), -('eiusmod', 8, 'node', 6), -('eiusmod', 11, 'node', 11), -('eiusmod', 19, 'node', 21), -('eleifend', 1, 'node', 1), -('eleifend', 3, 'node', 1.99315), -('eleifend', 4, 'node', 1), -('eleifend', 5, 'node', 1.99315), -('eleifend', 6, 'node', 1), -('eleifend', 7, 'node', 1), -('eleifend', 20, 'node', 3), -('elementum', 1, 'node', 1.65843), -('elementum', 3, 'node', 1), -('elementum', 4, 'node', 2.67583), -('elementum', 5, 'node', 1), -('elementum', 20, 'node', 29), -('elit', 1, 'node', 1.9496), -('elit', 3, 'node', 4.81521), -('elit', 4, 'node', 1.9534), -('elit', 5, 'node', 2.93833), -('elit', 6, 'node', 2), -('elit', 7, 'node', 4), -('elit', 8, 'node', 11.9905), -('elit', 9, 'node', 15), -('elit', 11, 'node', 11), -('elit', 14, 'node', 2), -('elit', 15, 'node', 2), -('elit', 16, 'node', 2), -('elit', 17, 'node', 2), -('elit', 18, 'node', 2), -('elit', 19, 'node', 21), -('elit', 20, 'node', 1), -('emptybox', 11, 'node', 1), -('enim', 1, 'node', 4.77518), -('enim', 3, 'node', 1), -('enim', 4, 'node', 5.78544), -('enim', 5, 'node', 1.92027), -('enim', 6, 'node', 1), -('enim', 7, 'node', 5.9089), -('enim', 8, 'node', 1), -('enim', 20, 'node', 2), -('enimclass', 1, 'node', 1), -('ensure', 8, 'node', 1), -('erat', 1, 'node', 0.851346), -('erat', 3, 'node', 1.92027), -('erat', 4, 'node', 0.854391), -('erat', 5, 'node', 1), -('erat', 8, 'node', 3), -('erat', 12, 'node', 2.2), -('erat', 13, 'node', 2.2), -('erat', 17, 'node', 22), -('erat', 20, 'node', 1), -('eros', 1, 'node', 3.66911), -('eros', 3, 'node', 2.93105), -('eros', 4, 'node', 3.6864), -('eros', 5, 'node', 2), -('eros', 6, 'node', 1), -('eros', 7, 'node', 2), -('eros', 8, 'node', 3), -('eros', 14, 'node', 1), -('eros', 15, 'node', 1), -('eros', 16, 'node', 1), -('eros', 17, 'node', 1), -('eros', 18, 'node', 1), -('eros', 20, 'node', 1), -('error', 8, 'node', 1), -('error', 19, 'node', 16), -('errorlist', 10, 'node', 1), -('est', 1, 'node', 2.7269), -('est', 3, 'node', 1), -('est', 4, 'node', 2.74517), -('est', 5, 'node', 1), -('est', 6, 'node', 1), -('est', 7, 'node', 1), -('etiam', 1, 'node', 1), -('etiam', 3, 'node', 1), -('etiam', 4, 'node', 1), -('etiam', 5, 'node', 1), -('etiam', 20, 'node', 29), -('euismod', 1, 'node', 1.63582), -('euismod', 4, 'node', 1.65851), -('eventbox', 11, 'node', 1), -('events', 6, 'node', 11), -('events', 20, 'node', 11), -('example', 2, 'node', 1), -('exclamlist', 10, 'node', 1), -('exercitation', 8, 'node', 1), -('facilisi', 3, 'node', 1), -('facilisi', 5, 'node', 1), -('facilisi', 20, 'node', 3), -('facilisis', 3, 'node', 3.9079), -('facilisis', 5, 'node', 2.97685), -('facilisis', 6, 'node', 2), -('facilisis', 7, 'node', 3.97685), -('facilisis', 14, 'node', 1), -('facilisis', 15, 'node', 1), -('facilisis', 16, 'node', 1), -('facilisis', 17, 'node', 1), -('facilisis', 18, 'node', 1), -('facilisis', 20, 'node', 1), -('fames', 1, 'node', 1), -('fames', 4, 'node', 1), -('faucibus', 1, 'node', 2), -('faucibus', 3, 'node', 1), -('faucibus', 4, 'node', 3), -('faucibus', 5, 'node', 1), -('faucibus', 20, 'node', 1), -('fbortis', 7, 'node', 26.9231), -('felis', 1, 'node', 1.65306), -('felis', 3, 'node', 0.913226), -('felis', 4, 'node', 1.66724), -('fermentum', 1, 'node', 1.83938), -('fermentum', 3, 'node', 3), -('fermentum', 4, 'node', 1.84234), -('fermentum', 5, 'node', 29), -('fermentum', 6, 'node', 2), -('fermentum', 7, 'node', 2), -('fermentum', 12, 'node', 2.2), -('fermentum', 13, 'node', 2.2), -('fermentum', 16, 'node', 48), -('fermentum', 20, 'node', 3), -('feugiat', 1, 'node', 0.810915), -('feugiat', 3, 'node', 1.98493), -('feugiat', 4, 'node', 0.822065), -('feugiat', 5, 'node', 2.9052), -('feugiat', 6, 'node', 2), -('feugiat', 7, 'node', 58.1288), -('feugiat', 20, 'node', 2), -('fieldset', 8, 'node', 18.3346), -('first', 9, 'node', 4), -('for', 8, 'node', 2), -('four', 9, 'node', 40), -('fourth', 9, 'node', 1), -('fringilla', 1, 'node', 2.66428), -('fringilla', 3, 'node', 2.95723), -('fringilla', 4, 'node', 2.67879), -('fringilla', 5, 'node', 3.8775), -('fringilla', 6, 'node', 2), -('fringilla', 7, 'node', 6.9089), -('fringilla', 20, 'node', 3), -('from', 2, 'node', 1), -('full', 13, 'node', 26), -('fusce', 3, 'node', 2), -('fusce', 5, 'node', 2), -('fusce', 6, 'node', 1), -('fusce', 7, 'node', 1), -('fusce', 20, 'node', 1), -('goes', 8, 'node', 1.99315), -('gravida', 1, 'node', 1), -('gravida', 4, 'node', 1), -('greenlist', 10, 'node', 1), -('grey', 19, 'node', 1), -('habitant', 1, 'node', 1), -('habitant', 4, 'node', 1), -('habitasse', 3, 'node', 0.906287), -('hac', 3, 'node', 0.909743), -('has', 8, 'node', 1), -('header', 8, 'node', 79.903), -('height', 8, 'node', 1), -('hendrerit', 1, 'node', 0.942091), -('hendrerit', 3, 'node', 3), -('hendrerit', 4, 'node', 26.9458), -('hendrerit', 5, 'node', 3), -('hendrerit', 6, 'node', 2), -('hendrerit', 7, 'node', 2), -('hendrerit', 9, 'node', 15), -('hendrerit', 20, 'node', 29), -('here', 8, 'node', 6.95748), -('here', 9, 'node', 9), -('here', 10, 'node', 22), -('here', 11, 'node', 11), -('here', 19, 'node', 4), -('himenaeos', 4, 'node', 1), -('himenaeosvestibulum', 1, 'node', 1), -('iaculis', 1, 'node', 2.80022), -('iaculis', 3, 'node', 3.91323), -('iaculis', 4, 'node', 1.9496), -('iaculis', 5, 'node', 3), -('iaculis', 6, 'node', 3), -('iaculis', 7, 'node', 3), -('iaculiscras', 4, 'node', 0.860547), -('ideabox', 11, 'node', 1), -('idealist', 10, 'node', 1), -('illustration', 12, 'node', 16), -('illustration', 13, 'node', 16), -('image', 12, 'node', 88), -('image', 13, 'node', 88), -('immediately', 8, 'node', 1), -('imperdiet', 1, 'node', 0.934703), -('imperdiet', 3, 'node', 27.9534), -('imperdiet', 4, 'node', 0.942091), -('imperdiet', 5, 'node', 1.9534), -('imperdiet', 6, 'node', 2), -('imperdiet', 7, 'node', 2), -('inceptos', 1, 'node', 1), -('inceptos', 4, 'node', 1), -('incididunt', 8, 'node', 6), -('incididunt', 11, 'node', 11), -('incididunt', 19, 'node', 21), -('info', 19, 'node', 16), -('information', 8, 'node', 1.95723), -('integer', 1, 'node', 1.92027), -('integer', 3, 'node', 1), -('integer', 4, 'node', 1.92743), -('integer', 5, 'node', 1.92027), -('integer', 6, 'node', 1), -('integer', 7, 'node', 5.9089), -('integer', 12, 'node', 2.2), -('integer', 13, 'node', 2.2), -('integer', 14, 'node', 48), -('integer', 20, 'node', 2), -('interdum', 1, 'node', 3.47837), -('interdum', 3, 'node', 1.94209), -('interdum', 4, 'node', 3.49818), -('interdum', 5, 'node', 1), -('interdum', 6, 'node', 1), -('interdum', 7, 'node', 2), -('interdum', 14, 'node', 1), -('interdum', 15, 'node', 1), -('interdum', 16, 'node', 1), -('interdum', 17, 'node', 1), -('interdum', 18, 'node', 1), -('introduces', 2, 'node', 1), -('ipsum', 1, 'node', 6.45004), -('ipsum', 3, 'node', 3.92743), -('ipsum', 4, 'node', 6.47387), -('ipsum', 5, 'node', 3.92027), -('ipsum', 6, 'node', 2), -('ipsum', 7, 'node', 6.9089), -('ipsum', 8, 'node', 10), -('ipsum', 9, 'node', 15), -('ipsum', 11, 'node', 11), -('ipsum', 12, 'node', 2.2), -('ipsum', 13, 'node', 2.2), -('ipsum', 18, 'node', 48), -('ipsum', 19, 'node', 21), -('ipsum', 20, 'node', 3), -('item', 10, 'node', 66), -('justo', 1, 'node', 1.63321), -('justo', 3, 'node', 3.88053), -('justo', 4, 'node', 1.65584), -('justo', 5, 'node', 2), -('justo', 6, 'node', 1), -('justo', 7, 'node', 3), -('justo', 14, 'node', 1), -('justo', 15, 'node', 1), -('justo', 16, 'node', 1), -('justo', 17, 'node', 1), -('justo', 18, 'node', 1), -('keylist', 10, 'node', 1), -('labore', 8, 'node', 6), -('labore', 11, 'node', 11), -('labore', 19, 'node', 21), -('lacinia', 1, 'node', 0.808176), -('lacinia', 4, 'node', 0.819249), -('lacinia', 9, 'node', 15), -('lacus', 1, 'node', 1.77259), -('lacus', 3, 'node', 2.92331), -('lacus', 4, 'node', 1.78585), -('lacus', 5, 'node', 1.98493), -('lacus', 6, 'node', 2), -('lacus', 7, 'node', 3), -('lacus', 14, 'node', 1), -('lacus', 15, 'node', 1), -('lacus', 16, 'node', 1), -('lacus', 17, 'node', 1), -('lacus', 18, 'node', 1), -('laoreet', 1, 'node', 0.876337), -('laoreet', 3, 'node', 1), -('laoreet', 4, 'node', 0.882818), -('laoreet', 5, 'node', 1), -('laoreet', 20, 'node', 29), -('last', 9, 'node', 4), -('lectus', 1, 'node', 3.3764), -('lectus', 3, 'node', 2.93838), -('lectus', 4, 'node', 3.40024), -('lectus', 5, 'node', 2), -('lectus', 6, 'node', 2), -('lectus', 7, 'node', 3), -('lectus', 14, 'node', 1), -('lectus', 15, 'node', 1), -('lectus', 16, 'node', 1), -('lectus', 17, 'node', 1), -('lectus', 18, 'node', 1), -('lementum', 1, 'node', 1), -('leo', 1, 'node', 0.797402), -('leo', 3, 'node', 0.989021), -('leo', 4, 'node', 0.808176), -('leo', 5, 'node', 0.989021), -('leo', 6, 'node', 1), -('leo', 7, 'node', 1), -('libero', 1, 'node', 4.64539), -('libero', 4, 'node', 4.65924), -('libero', 12, 'node', 2.2), -('libero', 13, 'node', 2.2), -('libero', 14, 'node', 22), -('ligula', 1, 'node', 1), -('ligula', 4, 'node', 1), -('like', 2, 'node', 1), -('linked', 8, 'node', 29), -('links', 8, 'node', 19), -('list', 8, 'node', 45.8424), -('list', 10, 'node', 22), -('lists', 10, 'node', 26), -('litora', 1, 'node', 1), -('litora', 4, 'node', 1), -('lobortis', 3, 'node', 1.94583), -('lobortis', 5, 'node', 1.92027), -('lobortis', 6, 'node', 1), -('lobortis', 7, 'node', 31.3139), -('lobortis', 14, 'node', 1), -('lobortis', 15, 'node', 1), -('lobortis', 16, 'node', 1), -('lobortis', 17, 'node', 1), -('lobortis', 18, 'node', 1), -('lobortis', 20, 'node', 2), -('log', 5, 'node', 2.0246), -('log', 7, 'node', 6.46558), -('log', 20, 'node', 4.4), -('lorem', 1, 'node', 1.9496), -('lorem', 3, 'node', 2.95723), -('lorem', 4, 'node', 1), -('lorem', 5, 'node', 2.95723), -('lorem', 6, 'node', 1), -('lorem', 7, 'node', 1), -('lorem', 8, 'node', 10), -('lorem', 9, 'node', 15), -('lorem', 11, 'node', 11), -('lorem', 19, 'node', 11), -('lorem', 20, 'node', 30), -('luctus', 1, 'node', 4), -('luctus', 3, 'node', 0.972861), -('luctus', 4, 'node', 4), -('luctus', 5, 'node', 0.972861), -('luctus', 6, 'node', 1), -('luctus', 7, 'node', 1), -('maecenas', 1, 'node', 1), -('maecenas', 3, 'node', 1.94583), -('maecenas', 4, 'node', 1), -('maecenas', 5, 'node', 1), -('maecenas', 7, 'node', 1), -('maecenas', 9, 'node', 15), -('magna', 1, 'node', 3.64988), -('magna', 3, 'node', 1), -('magna', 4, 'node', 3.67002), -('magna', 5, 'node', 1), -('magna', 6, 'node', 1), -('magna', 7, 'node', 1.97685), -('magna', 8, 'node', 6), -('magna', 11, 'node', 11), -('magna', 19, 'node', 21), -('magnis', 1, 'node', 0.98493), -('magnis', 4, 'node', 0.989021), -('malesuada', 1, 'node', 1), -('malesuada', 3, 'node', 1.91674), -('malesuada', 4, 'node', 1), -('malesuada', 5, 'node', 1), -('malesuada', 8, 'node', 13), -('malesuada', 20, 'node', 1), -('march', 5, 'node', 0.938382), -('march', 7, 'node', 2.9537), -('march', 20, 'node', 1), -('massa', 1, 'node', 1.75261), -('massa', 3, 'node', 0.945829), -('massa', 4, 'node', 1.76262), -('massa', 7, 'node', 1), -('massa', 14, 'node', 1), -('massa', 15, 'node', 1), -('massa', 16, 'node', 1), -('massa', 17, 'node', 1), -('massa', 18, 'node', 1), -('mattis', 1, 'node', 1.80283), -('mattis', 3, 'node', 0.931053), -('mattis', 4, 'node', 1.81656), -('mattis', 8, 'node', 3), -('mauris', 1, 'node', 5.5298), -('mauris', 3, 'node', 2.8338), -('mauris', 4, 'node', 5.55334), -('mauris', 5, 'node', 0.993146), -('mauris', 6, 'node', 1), -('mauris', 7, 'node', 1), -('message', 8, 'node', 3), -('message', 11, 'node', 26), -('message', 19, 'node', 64), -('messages', 8, 'node', 13), -('metus', 1, 'node', 2.84532), -('metus', 4, 'node', 2.84832), -('might', 2, 'node', 1), -('minim', 8, 'node', 1), -('molestie', 1, 'node', 1.69429), -('molestie', 3, 'node', 2.93105), -('molestie', 4, 'node', 1.70933), -('molestie', 5, 'node', 2.92027), -('molestie', 6, 'node', 1), -('molestie', 7, 'node', 6.9089), -('molestie', 14, 'node', 1), -('molestie', 15, 'node', 1), -('molestie', 16, 'node', 1), -('molestie', 17, 'node', 1), -('molestie', 18, 'node', 1), -('molestie', 20, 'node', 3), -('mollis', 1, 'node', 2.71895), -('mollis', 3, 'node', 3.86222), -('mollis', 4, 'node', 2.72844), -('mollis', 5, 'node', 2), -('mollis', 6, 'node', 28), -('mollis', 7, 'node', 3.97685), -('mollis', 12, 'node', 2.2), -('mollis', 13, 'node', 2.2), -('mollis', 14, 'node', 1), -('mollis', 15, 'node', 1), -('mollis', 16, 'node', 49), -('mollis', 17, 'node', 1), -('mollis', 18, 'node', 1), -('montes', 1, 'node', 0.972861), -('montes', 4, 'node', 0.976851), -('morbi', 1, 'node', 4.73396), -('morbi', 3, 'node', 2), -('morbi', 4, 'node', 4.74355), -('morbi', 5, 'node', 2), -('morbi', 6, 'node', 1), -('morbi', 7, 'node', 1.97685), -('morbi', 20, 'node', 29), -('more', 8, 'node', 2.98633), -('most', 2, 'node', 2), -('mus', 1, 'node', 0.961087), -('musaliquam', 4, 'node', 0.96498), -('nam', 1, 'node', 1.76652), -('nam', 4, 'node', 1.77969), -('nascetur', 1, 'node', 0.968904), -('nascetur', 4, 'node', 0.972861), -('natoque', 1, 'node', 0.993146), -('natoque', 4, 'node', 0.997306), -('navigation', 2, 'node', 1), -('nec', 1, 'node', 1.85439), -('nec', 3, 'node', 5.78965), -('nec', 4, 'node', 1.86055), -('nec', 5, 'node', 3.93833), -('nec', 6, 'node', 3), -('nec', 7, 'node', 4), -('nec', 14, 'node', 1), -('nec', 15, 'node', 1), -('nec', 16, 'node', 1), -('nec', 17, 'node', 1), -('nec', 18, 'node', 1), -('neque', 1, 'node', 4.22852), -('neque', 3, 'node', 3.88416), -('neque', 4, 'node', 4.26404), -('neque', 5, 'node', 1.98493), -('neque', 6, 'node', 1), -('neque', 7, 'node', 29), -('neque', 14, 'node', 1), -('neque', 15, 'node', 1), -('neque', 16, 'node', 1), -('neque', 17, 'node', 1), -('neque', 18, 'node', 1), -('netus', 1, 'node', 1), -('netus', 4, 'node', 1), -('newlist', 10, 'node', 1), -('news', 2, 'node', 11), -('news', 4, 'node', 8.80075), -('news', 7, 'node', 11), -('nibh', 1, 'node', 0.927431), -('nibh', 4, 'node', 0.934703), -('nibh', 8, 'node', 3.99731), -('nibh', 9, 'node', 15), -('nisi', 1, 'node', 2.73702), -('nisi', 3, 'node', 2), -('nisi', 4, 'node', 2.74975), -('nisi', 5, 'node', 2), -('nisi', 6, 'node', 1), -('nisi', 7, 'node', 1), -('nisi', 9, 'node', 30), -('nisi', 20, 'node', 1), -('nisl', 1, 'node', 3.5391), -('nisl', 3, 'node', 1.95723), -('nisl', 4, 'node', 3.55121), -('nisl', 5, 'node', 1.95723), -('nisl', 6, 'node', 2), -('nisl', 7, 'node', 2), -('nisl', 12, 'node', 2.2), -('nisl', 13, 'node', 2.2), -('nisl', 14, 'node', 22), -('non', 1, 'node', 4.33367), -('non', 3, 'node', 4), -('non', 4, 'node', 4.3624), -('non', 5, 'node', 4), -('non', 6, 'node', 3), -('non', 7, 'node', 3), -('non', 8, 'node', 3), -('non', 20, 'node', 1), -('nostra', 1, 'node', 1), -('nostra', 4, 'node', 1), -('nostrud', 8, 'node', 1), -('nulla', 1, 'node', 5.38155), -('nulla', 3, 'node', 7.5982), -('nulla', 4, 'node', 31.3967), -('nulla', 5, 'node', 2.95723), -('nulla', 6, 'node', 2), -('nulla', 7, 'node', 4), -('nulla', 12, 'node', 2.2), -('nulla', 13, 'node', 2.2), -('nulla', 14, 'node', 2), -('nulla', 15, 'node', 2), -('nulla', 16, 'node', 50), -('nulla', 17, 'node', 2), -('nulla', 18, 'node', 2), -('nulla', 20, 'node', 3), -('nullam', 1, 'node', 1.65602), -('nullam', 3, 'node', 1.89603), -('nullam', 4, 'node', 1.67022), -('nullam', 5, 'node', 0.96498), -('nullam', 6, 'node', 1), -('nullam', 7, 'node', 1), -('nullam', 8, 'node', 13), -('nunc', 1, 'node', 5.97149), -('nunc', 3, 'node', 1.92743), -('nunc', 4, 'node', 6.01976), -('nunc', 5, 'node', 1), -('nunc', 6, 'node', 1), -('nunc', 7, 'node', 1), -('nunc', 8, 'node', 0.989021), -('nunc', 12, 'node', 2.2), -('nunc', 13, 'node', 2.2), -('nunc', 16, 'node', 48), -('odio', 1, 'node', 33.9029), -('odio', 3, 'node', 3.9079), -('odio', 4, 'node', 3.90974), -('odio', 5, 'node', 28.9769), -('odio', 6, 'node', 3), -('odio', 7, 'node', 4), -('odio', 8, 'node', 3), -('odio', 12, 'node', 2.2), -('odio', 13, 'node', 2.2), -('odio', 14, 'node', 1), -('odio', 15, 'node', 49), -('odio', 16, 'node', 1), -('odio', 17, 'node', 1), -('odio', 18, 'node', 1), -('okbox', 11, 'node', 1), -('one', 2, 'node', 1), -('one', 8, 'node', 1.98902), -('one', 10, 'node', 22), -('onefourth', 9, 'node', 2), -('onehalf', 9, 'node', 2), -('onesixth', 9, 'node', 2), -('onethird', 9, 'node', 3), -('orangelist', 10, 'node', 1), -('orci', 1, 'node', 5.50993), -('orci', 3, 'node', 2), -('orci', 4, 'node', 5.53207), -('orci', 5, 'node', 2.92027), -('orci', 6, 'node', 2), -('orci', 7, 'node', 6.9089), -('orci', 12, 'node', 2.2), -('orci', 13, 'node', 2.2), -('orci', 15, 'node', 22), -('orci', 20, 'node', 2), -('ordered', 8, 'node', 23), -('orem', 19, 'node', 3), -('ornare', 1, 'node', 1.81925), -('ornare', 3, 'node', 3), -('ornare', 4, 'node', 1.83063), -('ornare', 5, 'node', 3.92027), -('ornare', 6, 'node', 1), -('ornare', 7, 'node', 5.9089), -('ornare', 20, 'node', 34), -('page', 2, 'node', 28), -('page', 8, 'node', 2), -('paragraph', 8, 'node', 19), -('parturient', 1, 'node', 0.976851), -('parturient', 4, 'node', 0.980874), -('pede', 8, 'node', 3), -('pellentesque', 1, 'node', 18.8513), -('pellentesque', 3, 'node', 3), -('pellentesque', 4, 'node', 3.85439), -('pellentesque', 5, 'node', 3), -('pellentesque', 6, 'node', 2), -('pellentesque', 7, 'node', 2), -('pellentesque', 20, 'node', 3), -('penatibus', 1, 'node', 0.989021), -('penatibus', 4, 'node', 0.993146), -('people', 2, 'node', 1), -('per', 1, 'node', 2), -('per', 4, 'node', 2), -('permalink', 5, 'node', 10.363), -('permalink', 7, 'node', 32.4907), -('permalink', 20, 'node', 22), -('pharetra', 1, 'node', 2.84532), -('pharetra', 4, 'node', 2.84832), -('pharetra', 9, 'node', 15), -('phasellus', 1, 'node', 0.857458), -('phasellus', 3, 'node', 1), -('phasellus', 4, 'node', 0.863659), -('phasellus', 5, 'node', 1), -('phasellus', 6, 'node', 1), -('phasellus', 7, 'node', 1), -('pinklist', 10, 'node', 1), -('place', 2, 'node', 1), -('placerat', 1, 'node', 1), -('placerat', 3, 'node', 1.92743), -('placerat', 4, 'node', 1), -('placerat', 5, 'node', 1.92027), -('placerat', 6, 'node', 1), -('placerat', 7, 'node', 5.9089), -('placerat', 20, 'node', 2), -('platea', 3, 'node', 0.902857), -('pluslist', 10, 'node', 1), -('porta', 1, 'node', 0.953396), -('porta', 3, 'node', 28), -('porta', 5, 'node', 2), -('porta', 6, 'node', 28), -('porta', 7, 'node', 2), -('portalorem', 4, 'node', 0.957226), -('portofolio', 12, 'node', 26), -('portofolio', 13, 'node', 26), -('porttitor', 1, 'node', 2.68827), -('porttitor', 3, 'node', 1.98493), -('porttitor', 4, 'node', 2.70585), -('porttitor', 5, 'node', 1.98493), -('porttitor', 6, 'node', 2), -('porttitor', 7, 'node', 2), -('post', 2, 'node', 1), -('post', 5, 'node', 0.913226), -('post', 7, 'node', 2.93069), -('post', 20, 'node', 2), -('posuere', 1, 'node', 2.87957), -('posuere', 3, 'node', 1.94583), -('posuere', 4, 'node', 2.8861), -('posuere', 5, 'node', 1), -('posuere', 7, 'node', 1), -('posuere', 8, 'node', 3), -('posuere', 14, 'node', 1), -('posuere', 15, 'node', 1), -('posuere', 16, 'node', 1), -('posuere', 17, 'node', 1), -('posuere', 18, 'node', 1), -('posuere', 20, 'node', 3), -('potenti', 3, 'node', 1.95723), -('potenti', 5, 'node', 2.8775), -('potenti', 6, 'node', 2), -('potenti', 7, 'node', 5.91575), -('potenti', 20, 'node', 2), -('potential', 2, 'node', 1), -('praesent', 1, 'node', 1.83938), -('praesent', 3, 'node', 1), -('praesent', 4, 'node', 1.84234), -('praesent', 5, 'node', 1), -('praesent', 20, 'node', 1), -('pretium', 1, 'node', 2.67113), -('pretium', 3, 'node', 1), -('pretium', 4, 'node', 2.68856), -('pretium', 5, 'node', 1), -('pretium', 8, 'node', 0.976851), -('pretium', 20, 'node', 1), -('primis', 1, 'node', 1), -('primis', 4, 'node', 1), -('primis', 12, 'node', 2.2), -('primis', 13, 'node', 2.2), -('primis', 18, 'node', 48), -('proin', 1, 'node', 1), -('proin', 3, 'node', 0.927431), -('proin', 4, 'node', 1), -('project', 12, 'node', 2.2), -('project', 13, 'node', 2.2), -('project', 17, 'node', 48), -('pulvinar', 1, 'node', 1), -('pulvinar', 3, 'node', 1.90361), -('pulvinar', 4, 'node', 1), -('pulvinar', 5, 'node', 0.968904), -('pulvinar', 6, 'node', 1), -('pulvinar', 7, 'node', 2), -('pulvinar', 14, 'node', 1), -('pulvinar', 15, 'node', 1), -('pulvinar', 16, 'node', 1), -('pulvinar', 17, 'node', 1), -('pulvinar', 18, 'node', 1), -('purplelist', 10, 'node', 1), -('purus', 1, 'node', 0.896076), -('purus', 3, 'node', 1.92743), -('purus', 4, 'node', 0.902857), -('purus', 5, 'node', 1), -('purus', 20, 'node', 1), -('quam', 1, 'node', 2.87313), -('quam', 3, 'node', 2.85133), -('quam', 4, 'node', 2.87957), -('quam', 5, 'node', 1), -('quam', 7, 'node', 1), -('quam', 14, 'node', 1), -('quam', 15, 'node', 1), -('quam', 16, 'node', 1), -('quam', 17, 'node', 1), -('quam', 18, 'node', 1), -('quam', 20, 'node', 3), -('questionbox', 11, 'node', 1), -('quis', 1, 'node', 0.800068), -('quis', 3, 'node', 5.7665), -('quis', 4, 'node', 0.810915), -('quis', 5, 'node', 3.89712), -('quis', 6, 'node', 3), -('quis', 7, 'node', 9.88575), -('quis', 8, 'node', 2.99315), -('quis', 14, 'node', 1), -('quis', 15, 'node', 1), -('quis', 16, 'node', 1), -('quis', 17, 'node', 1), -('quis', 18, 'node', 1), -('quis', 20, 'node', 2), -('quisque', 1, 'node', 0.931053), -('quisque', 3, 'node', 1.94313), -('quisque', 4, 'node', 0.938382), -('quisque', 5, 'node', 0.997306), -('quisque', 6, 'node', 1), -('quisque', 7, 'node', 2), -('quisque', 8, 'node', 5.99045), -('quisque', 14, 'node', 1), -('quisque', 15, 'node', 1), -('quisque', 16, 'node', 1), -('quisque', 17, 'node', 1), -('quisque', 18, 'node', 1), -('redlist', 10, 'node', 1), -('register', 5, 'node', 2.01682), -('register', 7, 'node', 6.45651), -('register', 20, 'node', 4.4), -('reply', 7, 'node', 26.2633), -('rhoncus', 1, 'node', 5.49359), -('rhoncus', 3, 'node', 4.84779), -('rhoncus', 4, 'node', 5.5136), -('rhoncus', 5, 'node', 3), -('rhoncus', 6, 'node', 28), -('rhoncus', 7, 'node', 3), -('rhoncus', 14, 'node', 1), -('rhoncus', 15, 'node', 1), -('rhoncus', 16, 'node', 1), -('rhoncus', 17, 'node', 1), -('rhoncus', 18, 'node', 1), -('rhoncus', 20, 'node', 3), -('ridiculus', 1, 'node', 0.96498), -('ridiculus', 4, 'node', 0.968904), -('risus', 1, 'node', 1.83938), -('risus', 3, 'node', 2.83533), -('risus', 4, 'node', 1.84234), -('risus', 5, 'node', 0.976851), -('risus', 6, 'node', 1), -('risus', 7, 'node', 2), -('risus', 14, 'node', 1), -('risus', 15, 'node', 1), -('risus', 16, 'node', 1), -('risus', 17, 'node', 1), -('risus', 18, 'node', 1), -('row', 8, 'node', 5.66005), -('rutrum', 1, 'node', 0.945829), -('rutrum', 3, 'node', 1.99315), -('rutrum', 4, 'node', 0.949597), -('rutrum', 5, 'node', 1.99315), -('rutrum', 6, 'node', 2), -('rutrum', 7, 'node', 2.97685), -('sagittis', 1, 'node', 2.57683), -('sagittis', 3, 'node', 0.916736), -('sagittis', 4, 'node', 2.58946), -('sample', 2, 'node', 26), -('sample', 8, 'node', 4.99315), -('sapien', 1, 'node', 2.63216), -('sapien', 3, 'node', 1.98493), -('sapien', 4, 'node', 2.64563), -('sapien', 5, 'node', 1.98493), -('sapien', 6, 'node', 2), -('sapien', 7, 'node', 2), -('sapien', 8, 'node', 0.972861), -('sapien', 12, 'node', 2.2), -('sapien', 13, 'node', 2.2), -('sapien', 15, 'node', 22), -('say', 2, 'node', 1), -('scelerisque', 1, 'node', 0.822065), -('scelerisque', 3, 'node', 1), -('scelerisque', 4, 'node', 0.833529), -('scelerisque', 5, 'node', 1), -('scelerisque', 20, 'node', 1), -('searchbox', 11, 'node', 1), -('second', 9, 'node', 2), -('security', 8, 'node', 2), -('sed', 1, 'node', 5.61637), -('sed', 3, 'node', 34.9116), -('sed', 4, 'node', 5.63852), -('sed', 5, 'node', 9.8174), -('sed', 6, 'node', 32), -('sed', 7, 'node', 41.2228), -('sed', 8, 'node', 6), -('sed', 11, 'node', 11), -('sed', 14, 'node', 1), -('sed', 15, 'node', 1), -('sed', 16, 'node', 1), -('sed', 17, 'node', 1), -('sed', 18, 'node', 1), -('sed', 19, 'node', 21), -('sed', 20, 'node', 6), -('see', 8, 'node', 1), -('sem', 1, 'node', 1), -('sem', 3, 'node', 2.98493), -('sem', 4, 'node', 1), -('sem', 5, 'node', 2.98493), -('sem', 6, 'node', 2), -('sem', 7, 'node', 2), -('sem', 8, 'node', 0.980874), -('sem', 20, 'node', 3), -('semper', 1, 'node', 1), -('semper', 3, 'node', 1.93838), -('semper', 4, 'node', 1), -('semper', 5, 'node', 1), -('semper', 7, 'node', 1), -('semper', 8, 'node', 3), -('semper', 14, 'node', 1), -('semper', 15, 'node', 1), -('semper', 16, 'node', 1), -('semper', 17, 'node', 1), -('semper', 18, 'node', 1), -('semper', 20, 'node', 29), -('senectus', 1, 'node', 1), -('senectus', 4, 'node', 1), -('server', 8, 'node', 1), -('should', 8, 'node', 1), -('show', 2, 'node', 1), -('simpleerror', 19, 'node', 1), -('simpleinfo', 19, 'node', 1), -('simplenotice', 19, 'node', 1), -('simplesuccess', 19, 'node', 1), -('sit', 1, 'node', 22.6379), -('sit', 3, 'node', 3), -('sit', 4, 'node', 7.65925), -('sit', 5, 'node', 3.92027), -('sit', 6, 'node', 1), -('sit', 7, 'node', 5.9089), -('sit', 8, 'node', 10), -('sit', 9, 'node', 15), -('sit', 11, 'node', 11), -('sit', 19, 'node', 21), -('sit', 20, 'node', 4), -('site', 2, 'node', 2), -('six', 9, 'node', 60), -('sixth', 9, 'node', 1), -('snippet', 8, 'node', 13), -('sociis', 1, 'node', 0.997306), -('sociis', 4, 'node', 1), -('sociosqu', 1, 'node', 1), -('sociosqu', 4, 'node', 1), -('sodales', 1, 'node', 2.51574), -('sodales', 3, 'node', 2.84057), -('sodales', 4, 'node', 2.53329), -('sodales', 5, 'node', 1), -('sodales', 20, 'node', 1), -('sollicitudin', 1, 'node', 18.9029), -('sollicitudin', 3, 'node', 0.98493), -('sollicitudin', 4, 'node', 3.90974), -('sollicitudin', 5, 'node', 0.98493), -('sollicitudin', 6, 'node', 1), -('sollicitudin', 7, 'node', 1), -('something', 2, 'node', 1), -('something', 8, 'node', 4.96433), -('span', 19, 'node', 4), -('starlist', 10, 'node', 2), -('start', 2, 'node', 1), -('status', 8, 'node', 1), -('stay', 2, 'node', 1), -('styles', 10, 'node', 26), -('success', 19, 'node', 16), -('successbox', 11, 'node', 1), -('suscipit', 3, 'node', 0.938382), -('suscipit', 7, 'node', 1), -('suscipit', 8, 'node', 3), -('suscipit', 14, 'node', 1), -('suscipit', 15, 'node', 1), -('suscipit', 16, 'node', 1), -('suscipit', 17, 'node', 1), -('suscipit', 18, 'node', 1), -('suspendisse', 1, 'node', 1.60282), -('suspendisse', 3, 'node', 4.82666), -('suspendisse', 4, 'node', 1.62459), -('suspendisse', 5, 'node', 4.79777), -('suspendisse', 6, 'node', 3), -('suspendisse', 7, 'node', 13.8246), -('suspendisse', 8, 'node', 3), -('suspendisse', 14, 'node', 2), -('suspendisse', 15, 'node', 2), -('suspendisse', 16, 'node', 2), -('suspendisse', 17, 'node', 2), -('suspendisse', 18, 'node', 2), -('suspendisse', 20, 'node', 4), -('table', 8, 'node', 18.1873), -('taciti', 1, 'node', 1), -('taciti', 4, 'node', 1), -('taglist', 10, 'node', 1), -('tellus', 1, 'node', 0.816452), -('tellus', 3, 'node', 1), -('tellus', 4, 'node', 0.827757), -('tellus', 5, 'node', 1), -('tellus', 20, 'node', 1), -('tempor', 1, 'node', 2.85746), -('tempor', 3, 'node', 3.98493), -('tempor', 4, 'node', 2.86366), -('tempor', 5, 'node', 3.98493), -('tempor', 6, 'node', 1), -('tempor', 7, 'node', 1), -('tempor', 8, 'node', 6), -('tempor', 11, 'node', 11), -('tempor', 19, 'node', 21), -('tempor', 20, 'node', 31), -('tempus', 1, 'node', 16), -('tempus', 3, 'node', 1.93838), -('tempus', 4, 'node', 1), -('tempus', 5, 'node', 1), -('tempus', 6, 'node', 1), -('tempus', 7, 'node', 2.97685), -('tempus', 14, 'node', 1), -('tempus', 15, 'node', 1), -('tempus', 16, 'node', 1), -('tempus', 17, 'node', 1), -('tempus', 18, 'node', 1), -('test', 5, 'node', 25.0335), -('test', 7, 'node', 26.367), -('text', 11, 'node', 11), -('text', 19, 'node', 4), -('that', 2, 'node', 1), -('the', 8, 'node', 2), -('them', 2, 'node', 1), -('themes', 2, 'node', 1), -('then', 8, 'node', 1.98902), -('there', 8, 'node', 1), -('third', 9, 'node', 1), -('this', 2, 'node', 2), -('this', 8, 'node', 1.99315), -('this', 10, 'node', 66), -('three', 9, 'node', 30), -('three', 10, 'node', 22), -('thumbsupbox', 11, 'node', 1), -('ticklist', 10, 'node', 1), -('tincidunt', 1, 'node', 5.31678), -('tincidunt', 3, 'node', 4.85848), -('tincidunt', 4, 'node', 5.34811), -('tincidunt', 5, 'node', 3.92027), -('tincidunt', 6, 'node', 2), -('tincidunt', 7, 'node', 7.9089), -('tincidunt', 14, 'node', 1), -('tincidunt', 15, 'node', 1), -('tincidunt', 16, 'node', 1), -('tincidunt', 17, 'node', 1), -('tincidunt', 18, 'node', 1), -('tincidunt', 20, 'node', 2), -('top', 9, 'node', 60), -('torquent', 1, 'node', 1), -('torquent', 4, 'node', 1), -('tortor', 1, 'node', 0.860547), -('tortor', 3, 'node', 27), -('tortor', 4, 'node', 0.866793), -('tortor', 5, 'node', 1), -('tortor', 6, 'node', 1), -('tortor', 7, 'node', 1), -('tristique', 1, 'node', 4.65025), -('tristique', 4, 'node', 4.67003), -('turpis', 1, 'node', 2.63609), -('turpis', 3, 'node', 4), -('turpis', 4, 'node', 2.65584), -('turpis', 5, 'node', 31.8405), -('turpis', 6, 'node', 4), -('turpis', 7, 'node', 65.0377), -('turpis', 8, 'node', 3), -('turpis', 20, 'node', 4), -('two', 9, 'node', 20), -('two', 10, 'node', 22), -('typography', 8, 'node', 33), -('ullamco', 8, 'node', 1), -('ullamcorper', 1, 'node', 3.6498), -('ullamcorper', 3, 'node', 2.88828), -('ullamcorper', 4, 'node', 3.67289), -('ullamcorper', 5, 'node', 1.95723), -('ullamcorper', 6, 'node', 2), -('ullamcorper', 7, 'node', 3), -('ullamcorper', 14, 'node', 1), -('ullamcorper', 15, 'node', 1), -('ullamcorper', 16, 'node', 1), -('ullamcorper', 17, 'node', 1), -('ullamcorper', 18, 'node', 1), -('ultrices', 1, 'node', 2.83645), -('ultrices', 3, 'node', 1.9267), -('ultrices', 4, 'node', 2.83938), -('ultrices', 5, 'node', 0.980874), -('ultrices', 6, 'node', 1), -('ultrices', 7, 'node', 2), -('ultrices', 14, 'node', 1), -('ultrices', 15, 'node', 1), -('ultrices', 16, 'node', 1), -('ultrices', 17, 'node', 1), -('ultrices', 18, 'node', 1), -('ultricies', 1, 'node', 0.920273), -('ultricies', 4, 'node', 0.927431), -('uncategorized', 3, 'node', 9.78337), -('uncategorized', 5, 'node', 10.4041), -('unordered', 8, 'node', 22.9214), -('update', 8, 'node', 2), -('updated', 8, 'node', 1), -('updates', 8, 'node', 1), -('urna', 1, 'node', 3), -('urna', 3, 'node', 3.83701), -('urna', 4, 'node', 3), -('urna', 5, 'node', 2), -('urna', 8, 'node', 3), -('urna', 20, 'node', 2), -('varius', 1, 'node', 1.67963), -('varius', 3, 'node', 0.920273), -('varius', 4, 'node', 1.69701), -('varius', 9, 'node', 15), -('vcardlist', 10, 'node', 1), -('vehicula', 1, 'node', 1.75507), -('vehicula', 3, 'node', 1.89561), -('vehicula', 4, 'node', 1.76506), -('vehicula', 5, 'node', 0.957226), -('vehicula', 6, 'node', 1), -('vehicula', 7, 'node', 2), -('vehicula', 14, 'node', 1), -('vehicula', 15, 'node', 1), -('vehicula', 16, 'node', 1), -('vehicula', 17, 'node', 1), -('vehicula', 18, 'node', 1), -('vel', 1, 'node', 4.5391), -('vel', 3, 'node', 1.89923), -('vel', 4, 'node', 5.38751), -('vel', 7, 'node', 2), -('vel', 12, 'node', 2.2), -('vel', 13, 'node', 2.2), -('vel', 14, 'node', 1), -('vel', 15, 'node', 23), -('vel', 16, 'node', 1), -('vel', 17, 'node', 1), -('vel', 18, 'node', 1), -('velit', 1, 'node', 1), -('velit', 3, 'node', 1), -('velit', 4, 'node', 1), -('velit', 5, 'node', 1), -('velit', 6, 'node', 1), -('velit', 7, 'node', 1), -('velit', 12, 'node', 2.2), -('velit', 13, 'node', 2.2), -('velit', 14, 'node', 48), -('venenatis', 1, 'node', 0.873132), -('venenatis', 3, 'node', 2), -('venenatis', 4, 'node', 0.879565), -('venenatis', 5, 'node', 2), -('venenatis', 20, 'node', 4), -('veniam', 8, 'node', 1), -('version', 8, 'node', 1), -('vestibulum', 1, 'node', 4.66145), -('vestibulum', 3, 'node', 5.99315), -('vestibulum', 4, 'node', 31.6759), -('vestibulum', 5, 'node', 5.99315), -('vestibulum', 6, 'node', 4), -('vestibulum', 7, 'node', 4.97685), -('vestibulum', 9, 'node', 15), -('vestibulum', 12, 'node', 2.2), -('vestibulum', 13, 'node', 2.2), -('vestibulum', 18, 'node', 48), -('vestibulum', 20, 'node', 2), -('view', 12, 'node', 88), -('view', 13, 'node', 88), -('visitors', 2, 'node', 1), -('vitae', 1, 'node', 4.40276), -('vitae', 3, 'node', 3.97808), -('vitae', 4, 'node', 4.41807), -('vitae', 5, 'node', 4.89835), -('vitae', 6, 'node', 4), -('vitae', 7, 'node', 8.9089), -('vitae', 20, 'node', 2), -('vivamus', 1, 'node', 0.949597), -('vivamus', 3, 'node', 2.9534), -('vivamus', 4, 'node', 0.953396), -('vivamus', 5, 'node', 2), -('vivamus', 6, 'node', 2), -('vivamus', 7, 'node', 29), -('vivamus', 12, 'node', 2.2), -('vivamus', 13, 'node', 2.2), -('vivamus', 15, 'node', 48), -('viverra', 1, 'node', 1.74379), -('viverra', 4, 'node', 1.75353), -('viverra', 8, 'node', 3), -('volutpat', 1, 'node', 4.31841), -('volutpat', 3, 'node', 1), -('volutpat', 4, 'node', 4.34399), -('volutpat', 5, 'node', 1), -('volutpat', 8, 'node', 3), -('volutpat', 12, 'node', 2.2), -('volutpat', 13, 'node', 2.2), -('volutpat', 17, 'node', 22), -('volutpat', 20, 'node', 1), -('vulputate', 1, 'node', 0.892724), -('vulputate', 3, 'node', 0.949597), -('vulputate', 4, 'node', 0.899454), -('vulputate', 7, 'node', 1), -('warning', 8, 'node', 1), -('warning', 19, 'node', 16), -('warningbox', 11, 'node', 1), -('web', 12, 'node', 16), -('web', 13, 'node', 16), -('website', 12, 'node', 2.2), -('website', 13, 'node', 2.2), -('website', 17, 'node', 48), -('well', 8, 'node', 2.97119), -('width', 8, 'node', 1), -('width', 13, 'node', 26), -('will', 2, 'node', 2), -('with', 2, 'node', 1), -('with', 8, 'node', 19), -('yellowlist', 10, 'node', 1), -('you', 8, 'node', 1), -('your', 2, 'node', 1), -('your', 8, 'node', 2); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `search_node_links` --- - -CREATE TABLE IF NOT EXISTS `search_node_links` ( + +DROP TABLE IF EXISTS `search_node_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `search_node_links` ( `sid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The search_dataset.sid of the searchable item containing the link to the node.', `type` varchar(16) NOT NULL DEFAULT '' COMMENT 'The search_dataset.type of the searchable item containing the link to the node.', `nid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The node.nid that this item links to.', @@ -4417,433 +1836,48 @@ CREATE TABLE IF NOT EXISTS `search_node_links` ( PRIMARY KEY (`sid`,`type`,`nid`), KEY `nid` (`nid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores items (like nodes) that link to other nodes, used...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `search_node_links` +-- Dumping data for table `search_node_links` -- -INSERT INTO `search_node_links` (`sid`, `type`, `nid`, `caption`) VALUES -(12, 'node', 14, 'integer velit diam curabitur nisl libero'), -(12, 'node', 15, 'vivamus odio dolor cras vel orci sapien'), -(12, 'node', 16, 'nulla mollis fermentum nunc'), -(12, 'node', 17, 'blackberry website project aliquam erat volutpat'), -(12, 'node', 18, 'vestibulum ante ipsum primis'), -(13, 'node', 14, 'integer velit diam curabitur nisl libero'), -(13, 'node', 15, 'vivamus odio dolor cras vel orci sapien'), -(13, 'node', 16, 'nulla mollis fermentum nunc'), -(13, 'node', 17, 'blackberry website project aliquam erat volutpat'), -(13, 'node', 18, 'vestibulum ante ipsum primis'); - --- -------------------------------------------------------- +LOCK TABLES `search_node_links` WRITE; +/*!40000 ALTER TABLE `search_node_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `search_node_links` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `search_total` +-- Table structure for table `search_total` -- -CREATE TABLE IF NOT EXISTS `search_total` ( +DROP TABLE IF EXISTS `search_total`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `search_total` ( `word` varchar(50) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique word in the search index.', `count` float DEFAULT NULL COMMENT 'The count of the word in the index using Zipf’s law to equalize the probability distribution.', PRIMARY KEY (`word`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores search totals for words.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `search_total` +-- +LOCK TABLES `search_total` WRITE; +/*!40000 ALTER TABLE `search_total` DISABLE KEYS */; +/*!40000 ALTER TABLE `search_total` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `semaphore` -- --- Άδειασμα δεδομένων του πίνακα `search_total` --- - -INSERT INTO `search_total` (`word`, `count`) VALUES -('1', 0.0705705), -('18th', 0.126637), -('19th', 0.30103), -('1st', 0.30103), -('2', 0.00801895), -('2013', 0.0681601), -('27th', 0.30103), -('3', 0.0236291), -('300px', 0.30103), -('4', 0.0321847), -('80px', 0.30103), -('about', 0.0157943), -('account', 0.30103), -('accumsan', 0.124939), -('addbox', 0.30103), -('addlist', 0.30103), -('adipiscing', 0.00548136), -('adipisicing', 0.011281), -('admin', 0.00276557), -('aenean', 0.0100705), -('alerts', 0.0163904), -('aliqua', 0.0137883), -('aliqualorem', 0.0579919), -('aliquam', 0.00768951), -('all', 0.0193052), -('amet', 0.00411164), -('and', 0.125187), -('another', 0.176589), -('ante', 0.00428003), -('april', 0.30103), -('aptent', 0.176091), -('aucibus', 0.30103), -('auctor', 0.124939), -('augue', 0.0283271), -('available', 0.176091), -('because', 0.30103), -('been', 0.30103), -('bibendum', 0.0358176), -('blackberry', 0.00820997), -('blacklist', 0.30103), -('blandit', 0.0168017), -('block', 0.30103), -('blockquote', 0.09691), -('blog', 0.00682912), -('blue', 0.30103), -('bluelist', 0.30103), -('boxes', 0.0163904), -('cancelbox', 0.30103), -('cell', 0.0707007), -('class', 0.00860017), -('code', 0.0321847), -('column', 0.00272286), -('columns', 0.0163904), -('comment', 0.0170735), -('comments', 0.0686827), -('commodo', 0.0219656), -('condimentum', 0.0268387), -('congue', 0.0354165), -('consectetuer', 0.0299632), -('consectetur', 0.00699534), -('consequat', 0.0385943), -('content', 0.0457575), -('conubia', 0.176091), -('convallis', 0.0850625), -('cras', 0.00823263), -('crosslist', 0.30103), -('cubilia', 0.176091), -('cum', 0.176091), -('curabitur', 0.0139186), -('curae', 0.176091), -('cursus', 0.0397449), -('dapibus', 0.0434616), -('deletelist', 0.30103), -('diam', 0.00648678), -('diamvel', 0.30103), -('dictum', 0.098717), -('dictumst', 0.30103), -('different', 0.30103), -('dignissim', 0.0126718), -('dis', 0.178602), -('display', 0.30103), -('div', 0.00459575), -('dolor', 0.00300825), -('dolore', 0.011281), -('donec', 0.00675527), -('dropcap', 0.176091), -('dropcapfancy', 0.30103), -('dropcaps', 0.0163904), -('dropcapsimple', 0.30103), -('dropcapsquare', 0.30103), -('drupal', 0.0299632), -('dui', 0.0215367), -('duiid', 0.30103), -('egestas', 0.0106601), -('egestasproin', 0.176091), -('eget', 0.0242465), -('eiusmod', 0.011281), -('eleifend', 0.0378337), -('elementum', 0.0121203), -('elit', 0.00492699), -('emptybox', 0.30103), -('enim', 0.0181817), -('enimclass', 0.30103), -('ensure', 0.30103), -('erat', 0.0122255), -('eros', 0.0175237), -('error', 0.0248236), -('errorlist', 0.30103), -('est', 0.0435876), -('etiam', 0.012965), -('euismod', 0.115128), -('eventbox', 0.30103), -('events', 0.0193052), -('example', 0.30103), -('exclamlist', 0.30103), -('exercitation', 0.30103), -('facilisi', 0.0791812), -('facilisis', 0.0224357), -('fames', 0.176091), -('faucibus', 0.0511525), -('fbortis', 0.0158386), -('felis', 0.0920921), -('fermentum', 0.00454374), -('feugiat', 0.0062804), -('fieldset', 0.0230637), -('first', 0.09691), -('for', 0.176091), -('four', 0.0107239), -('fourth', 0.30103), -('fringilla', 0.0176662), -('from', 0.30103), -('full', 0.0163904), -('fusce', 0.0579919), -('goes', 0.176589), -('gravida', 0.176091), -('greenlist', 0.30103), -('grey', 0.30103), -('habitant', 0.176091), -('habitasse', 0.30103), -('hac', 0.30103), -('has', 0.30103), -('header', 0.00540154), -('height', 0.30103), -('hendrerit', 0.0052714), -('here', 0.00812435), -('himenaeos', 0.30103), -('himenaeosvestibulum', 0.30103), -('iaculis', 0.0239169), -('iaculiscras', 0.30103), -('ideabox', 0.30103), -('idealist', 0.30103), -('illustration', 0.013364), -('image', 0.0024606), -('immediately', 0.30103), -('imperdiet', 0.0119702), -('inceptos', 0.176091), -('incididunt', 0.011281), -('info', 0.0263289), -('information', 0.179244), -('integer', 0.00633307), -('interdum', 0.0235849), -('introduces', 0.30103), -('ipsum', 0.00304597), -('item', 0.00653087), -('justo', 0.0232677), -('keylist', 0.30103), -('labore', 0.011281), -('lacinia', 0.0253639), -('lacus', 0.0229031), -('laoreet', 0.0130589), -('last', 0.09691), -('lectus', 0.0195529), -('lementum', 0.30103), -('leo', 0.0715489), -('libero', 0.0119963), -('ligula', 0.176091), -('like', 0.30103), -('linked', 0.0147233), -('links', 0.0222764), -('list', 0.0063548), -('lists', 0.0163904), -('litora', 0.176091), -('lobortis', 0.00994308), -('log', 0.0324489), -('lorem', 0.00491488), -('luctus', 0.0349139), -('maecenas', 0.0202544), -('magna', 0.00854993), -('magnis', 0.177997), -('malesuada', 0.022372), -('march', 0.080775), -('massa', 0.0396491), -('mattis', 0.0540162), -('mauris', 0.0249519), -('message', 0.00464491), -('messages', 0.0321847), -('metus', 0.0702723), -('might', 0.30103), -('minim', 0.30103), -('molestie', 0.0169246), -('mollis', 0.00429206), -('montes', 0.179809), -('morbi', 0.00945093), -('more', 0.125436), -('most', 0.176091), -('mus', 0.30103), -('musaliquam', 0.30103), -('nam', 0.107885), -('nascetur', 0.180411), -('natoque', 0.176785), -('navigation', 0.30103), -('nec', 0.0167425), -('neque', 0.00871028), -('netus', 0.176091), -('newlist', 0.30103), -('news', 0.0138761), -('nibh', 0.0203364), -('nisi', 0.0101034), -('nisl', 0.0103643), -('non', 0.0159708), -('nostra', 0.176091), -('nostrud', 0.30103), -('nulla', 0.0036424), -('nullam', 0.0200289), -('nunc', 0.00613354), -('odio', 0.00313351), -('okbox', 0.30103), -('one', 0.0170407), -('onefourth', 0.176091), -('onehalf', 0.176091), -('onesixth', 0.176091), -('onethird', 0.124939), -('orangelist', 0.30103), -('orci', 0.00807695), -('ordered', 0.0184834), -('orem', 0.124939), -('ornare', 0.00835544), -('page', 0.0142404), -('paragraph', 0.0222764), -('parturient', 0.179206), -('pede', 0.124939), -('pellentesque', 0.0119959), -('penatibus', 0.177392), -('people', 0.30103), -('per', 0.09691), -('permalink', 0.00664542), -('pharetra', 0.0204955), -('phasellus', 0.0699606), -('pinklist', 0.30103), -('place', 0.30103), -('placerat', 0.0284762), -('platea', 0.30103), -('pluslist', 0.30103), -('porta', 0.00706721), -('portalorem', 0.30103), -('portofolio', 0.00827253), -('porttitor', 0.031339), -('post', 0.0592283), -('posuere', 0.0204783), -('potenti', 0.0284876), -('potential', 0.30103), -('praesent', 0.0605701), -('pretium', 0.0441892), -('primis', 0.00791087), -('proin', 0.127622), -('project', 0.00820997), -('pulvinar', 0.0324918), -('purplelist', 0.30103), -('purus', 0.0699014), -('quam', 0.0227383), -('questionbox', 0.30103), -('quis', 0.0125334), -('quisque', 0.022507), -('redlist', 0.30103), -('register', 0.0324898), -('reply', 0.0162291), -('rhoncus', 0.00744247), -('ridiculus', 0.181013), -('risus', 0.0271626), -('row', 0.0706572), -('rutrum', 0.0382597), -('sagittis', 0.0660992), -('sample', 0.0137913), -('sapien', 0.010562), -('say', 0.30103), -('scelerisque', 0.0845031), -('searchbox', 0.30103), -('second', 0.176091), -('security', 0.176091), -('sed', 0.00243022), -('see', 0.30103), -('sem', 0.0264078), -('semper', 0.00999838), -('senectus', 0.176091), -('server', 0.30103), -('should', 0.30103), -('show', 0.30103), -('simpleerror', 0.30103), -('simpleinfo', 0.30103), -('simplenotice', 0.30103), -('simplesuccess', 0.30103), -('sit', 0.00411164), -('site', 0.176091), -('six', 0.00717858), -('sixth', 0.30103), -('snippet', 0.0321847), -('sociis', 0.176286), -('sociosqu', 0.176091), -('sodales', 0.0418332), -('sollicitudin', 0.0159202), -('something', 0.0673176), -('span', 0.09691), -('starlist', 0.176091), -('start', 0.30103), -('status', 0.30103), -('stay', 0.30103), -('styles', 0.0163904), -('success', 0.0263289), -('successbox', 0.30103), -('suscipit', 0.0416374), -('suspendisse', 0.00920608), -('table', 0.0232456), -('taciti', 0.176091), -('taglist', 0.30103), -('tellus', 0.0846913), -('tempor', 0.00509795), -('tempus', 0.0147657), -('test', 0.00836809), -('text', 0.0280287), -('that', 0.30103), -('the', 0.176091), -('them', 0.30103), -('themes', 0.30103), -('then', 0.17689), -('there', 0.30103), -('third', 0.30103), -('this', 0.00616091), -('three', 0.00827253), -('thumbsupbox', 0.30103), -('ticklist', 0.30103), -('tincidunt', 0.0117854), -('top', 0.00717858), -('torquent', 0.176091), -('tortor', 0.013477), -('tristique', 0.0442625), -('turpis', 0.0036908), -('two', 0.0102192), -('typography', 0.012965), -('ullamco', 0.30103), -('ullamcorper', 0.0191619), -('ultrices', 0.0254293), -('ultricies', 0.187862), -('uncategorized', 0.0209972), -('unordered', 0.0185455), -('update', 0.176091), -('updated', 0.30103), -('updates', 0.30103), -('urna', 0.0250571), -('varius', 0.0219421), -('vcardlist', 0.30103), -('vehicula', 0.0292113), -('vel', 0.00949817), -('velit', 0.0073736), -('venenatis', 0.0423927), -('veniam', 0.30103), -('version', 0.30103), -('vestibulum', 0.00341427), -('view', 0.0024606), -('visitors', 0.30103), -('vitae', 0.0131192), -('vivamus', 0.00478533), -('viverra', 0.0621718), -('volutpat', 0.0104497), -('vulputate', 0.102863), -('warning', 0.0248236), -('warningbox', 0.30103), -('web', 0.013364), -('website', 0.00820997), -('well', 0.12599), -('width', 0.0157943), -('will', 0.176091), -('with', 0.0211893), -('yellowlist', 0.30103), -('you', 0.30103), -('your', 0.124939); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `semaphore` --- - -CREATE TABLE IF NOT EXISTS `semaphore` ( + +DROP TABLE IF EXISTS `semaphore`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `semaphore` ( `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique name.', `value` varchar(255) NOT NULL DEFAULT '' COMMENT 'A value for the semaphore.', `expire` double NOT NULL COMMENT 'A Unix timestamp with microseconds indicating when the semaphore should expire.', @@ -4851,32 +1885,48 @@ CREATE TABLE IF NOT EXISTS `semaphore` ( KEY `value` (`value`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table for holding semaphores, locks, flags, etc. that...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `semaphore` +-- --- -------------------------------------------------------- +LOCK TABLES `semaphore` WRITE; +/*!40000 ALTER TABLE `semaphore` DISABLE KEYS */; +/*!40000 ALTER TABLE `semaphore` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `sequences` +-- Table structure for table `sequences` -- -CREATE TABLE IF NOT EXISTS `sequences` ( +DROP TABLE IF EXISTS `sequences`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `sequences` ( `value` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'The value of the sequence.', PRIMARY KEY (`value`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores IDs.' AUTO_INCREMENT=9 ; +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='Stores IDs.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `sequences` +-- Dumping data for table `sequences` -- -INSERT INTO `sequences` (`value`) VALUES -(8); - --- -------------------------------------------------------- +LOCK TABLES `sequences` WRITE; +/*!40000 ALTER TABLE `sequences` DISABLE KEYS */; +INSERT INTO `sequences` VALUES (9); +/*!40000 ALTER TABLE `sequences` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `sessions` +-- Table structure for table `sessions` -- -CREATE TABLE IF NOT EXISTS `sessions` ( +DROP TABLE IF EXISTS `sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `sessions` ( `uid` int(10) unsigned NOT NULL COMMENT 'The users.uid corresponding to a session, or 0 for anonymous user.', `sid` varchar(128) NOT NULL COMMENT 'A session ID. The value is generated by Drupal’s session handlers.', `ssid` varchar(128) NOT NULL DEFAULT '' COMMENT 'Secure session ID. The value is generated by Drupal’s session handlers.', @@ -4889,46 +1939,74 @@ CREATE TABLE IF NOT EXISTS `sessions` ( KEY `uid` (`uid`), KEY `ssid` (`ssid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Drupal’s session handlers read and write into the...'; +/*!40101 SET character_set_client = @saved_cs_client */; --- -------------------------------------------------------- +-- +-- Dumping data for table `sessions` +-- + +LOCK TABLES `sessions` WRITE; +/*!40000 ALTER TABLE `sessions` DISABLE KEYS */; +INSERT INTO `sessions` VALUES (1,'PzFWGZTs2OQMDD5LRANk6QnA2fNu37ZP1h7jYiIu_xQ','','::1',1530783341,0,''); +/*!40000 ALTER TABLE `sessions` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `shortcut_set` +-- Table structure for table `shortcut_set` -- -CREATE TABLE IF NOT EXISTS `shortcut_set` ( +DROP TABLE IF EXISTS `shortcut_set`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `shortcut_set` ( `set_name` varchar(32) NOT NULL DEFAULT '' COMMENT 'Primary Key: The menu_links.menu_name under which the set’s links are stored.', `title` varchar(255) NOT NULL DEFAULT '' COMMENT 'The title of the set.', PRIMARY KEY (`set_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores information about sets of shortcuts links.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `shortcut_set` +-- Dumping data for table `shortcut_set` -- -INSERT INTO `shortcut_set` (`set_name`, `title`) VALUES -('shortcut-set-1', 'Default'); - --- -------------------------------------------------------- +LOCK TABLES `shortcut_set` WRITE; +/*!40000 ALTER TABLE `shortcut_set` DISABLE KEYS */; +INSERT INTO `shortcut_set` VALUES ('shortcut-set-1','Default'); +/*!40000 ALTER TABLE `shortcut_set` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `shortcut_set_users` +-- Table structure for table `shortcut_set_users` -- -CREATE TABLE IF NOT EXISTS `shortcut_set_users` ( +DROP TABLE IF EXISTS `shortcut_set_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `shortcut_set_users` ( `uid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The users.uid for this set.', `set_name` varchar(32) NOT NULL DEFAULT '' COMMENT 'The shortcut_set.set_name that will be displayed for this user.', PRIMARY KEY (`uid`), KEY `set_name` (`set_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Maps users to shortcut sets.'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `shortcut_set_users` +-- --- -------------------------------------------------------- +LOCK TABLES `shortcut_set_users` WRITE; +/*!40000 ALTER TABLE `shortcut_set_users` DISABLE KEYS */; +/*!40000 ALTER TABLE `shortcut_set_users` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `system` +-- Table structure for table `system` -- -CREATE TABLE IF NOT EXISTS `system` ( +DROP TABLE IF EXISTS `system`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `system` ( `filename` varchar(255) NOT NULL DEFAULT '' COMMENT 'The path of the primary file for this item, relative to the Drupal root; e.g. modules/node/node.module.', `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'The name of the item; e.g. node.', `type` varchar(12) NOT NULL DEFAULT '' COMMENT 'The type of the item, either module, theme, or theme_engine.', @@ -4942,136 +2020,26 @@ CREATE TABLE IF NOT EXISTS `system` ( KEY `system_list` (`status`,`bootstrap`,`type`,`weight`,`name`), KEY `type_name` (`type`,`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='A list of all modules, themes, and theme engines that are...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `system` --- - -INSERT INTO `system` (`filename`, `name`, `type`, `owner`, `status`, `bootstrap`, `schema_version`, `weight`, `info`) VALUES -('modules/aggregator/aggregator.module', 'aggregator', 'module', '', 0, 0, -1, 0, 0x613a31333a7b733a343a226e616d65223b733a31303a2241676772656761746f72223b733a31313a226465736372697074696f6e223b733a35373a22416767726567617465732073796e6469636174656420636f6e74656e7420285253532c205244462c20616e642041746f6d206665656473292e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31353a2261676772656761746f722e74657374223b7d733a393a22636f6e666967757265223b733a34313a2261646d696e2f636f6e6669672f73657276696365732f61676772656761746f722f73657474696e6773223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31343a2261676772656761746f722e637373223b733a33333a226d6f64756c65732f61676772656761746f722f61676772656761746f722e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/aggregator/tests/aggregator_test.module', 'aggregator_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32333a2241676772656761746f72206d6f64756c65207465737473223b733a31313a226465736372697074696f6e223b733a34363a22537570706f7274206d6f64756c6520666f722061676772656761746f722072656c617465642074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/block/block.module', 'block', 'module', '', 1, 0, 7008, -5, 0x613a31323a7b733a343a226e616d65223b733a353a22426c6f636b223b733a31313a226465736372697074696f6e223b733a3134303a22436f6e74726f6c73207468652076697375616c206275696c64696e6720626c6f636b732061207061676520697320636f6e737472756374656420776974682e20426c6f636b732061726520626f786573206f6620636f6e74656e742072656e646572656420696e746f20616e20617265612c206f7220726567696f6e2c206f6620612077656220706167652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31303a22626c6f636b2e74657374223b7d733a393a22636f6e666967757265223b733a32313a2261646d696e2f7374727563747572652f626c6f636b223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/block/tests/block_test.module', 'block_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31303a22426c6f636b2074657374223b733a31313a226465736372697074696f6e223b733a32313a2250726f7669646573207465737420626c6f636b732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/blog/blog.module', 'blog', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a343a22426c6f67223b733a31313a226465736372697074696f6e223b733a32353a22456e61626c6573206d756c74692d7573657220626c6f67732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a393a22626c6f672e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/book/book.module', 'book', 'module', '', 0, 0, -1, 0, 0x613a31333a7b733a343a226e616d65223b733a343a22426f6f6b223b733a31313a226465736372697074696f6e223b733a36363a22416c6c6f777320757365727320746f2063726561746520616e64206f7267616e697a652072656c6174656420636f6e74656e7420696e20616e206f75746c696e652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a393a22626f6f6b2e74657374223b7d733a393a22636f6e666967757265223b733a32373a2261646d696e2f636f6e74656e742f626f6f6b2f73657474696e6773223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a383a22626f6f6b2e637373223b733a32313a226d6f64756c65732f626f6f6b2f626f6f6b2e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/color/color.module', 'color', 'module', '', 1, 0, 7001, 0, 0x613a31313a7b733a343a226e616d65223b733a353a22436f6c6f72223b733a31313a226465736372697074696f6e223b733a37303a22416c6c6f77732061646d696e6973747261746f727320746f206368616e67652074686520636f6c6f7220736368656d65206f6620636f6d70617469626c65207468656d65732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31303a22636f6c6f722e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/comment/comment.module', 'comment', 'module', '', 1, 0, 7009, 0, 0x613a31333a7b733a343a226e616d65223b733a373a22436f6d6d656e74223b733a31313a226465736372697074696f6e223b733a35373a22416c6c6f777320757365727320746f20636f6d6d656e74206f6e20616e642064697363757373207075626c697368656420636f6e74656e742e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a343a2274657874223b7d733a353a2266696c6573223b613a323a7b693a303b733a31343a22636f6d6d656e742e6d6f64756c65223b693a313b733a31323a22636f6d6d656e742e74657374223b7d733a393a22636f6e666967757265223b733a32313a2261646d696e2f636f6e74656e742f636f6d6d656e74223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31313a22636f6d6d656e742e637373223b733a32373a226d6f64756c65732f636f6d6d656e742f636f6d6d656e742e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/contact/contact.module', 'contact', 'module', '', 1, 0, 7003, 0, 0x613a31323a7b733a343a226e616d65223b733a373a22436f6e74616374223b733a31313a226465736372697074696f6e223b733a36313a22456e61626c65732074686520757365206f6620626f746820706572736f6e616c20616e6420736974652d7769646520636f6e7461637420666f726d732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31323a22636f6e746163742e74657374223b7d733a393a22636f6e666967757265223b733a32333a2261646d696e2f7374727563747572652f636f6e74616374223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/contextual/contextual.module', 'contextual', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a31363a22436f6e7465787475616c206c696e6b73223b733a31313a226465736372697074696f6e223b733a37353a2250726f766964657320636f6e7465787475616c206c696e6b7320746f20706572666f726d20616374696f6e732072656c6174656420746f20656c656d656e7473206f6e206120706167652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31353a22636f6e7465787475616c2e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/dashboard/dashboard.module', 'dashboard', 'module', '', 1, 0, 0, 0, 0x613a31323a7b733a343a226e616d65223b733a393a2244617368626f617264223b733a31313a226465736372697074696f6e223b733a3133363a2250726f766964657320612064617368626f617264207061676520696e207468652061646d696e69737472617469766520696e7465726661636520666f72206f7267616e697a696e672061646d696e697374726174697665207461736b7320616e6420747261636b696e6720696e666f726d6174696f6e2077697468696e20796f757220736974652e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a353a2266696c6573223b613a313a7b693a303b733a31343a2264617368626f6172642e74657374223b7d733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a353a22626c6f636b223b7d733a393a22636f6e666967757265223b733a32353a2261646d696e2f64617368626f6172642f637573746f6d697a65223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/dblog/dblog.module', 'dblog', 'module', '', 1, 1, 7002, 0, 0x613a31313a7b733a343a226e616d65223b733a31363a224461746162617365206c6f6767696e67223b733a31313a226465736372697074696f6e223b733a34373a224c6f677320616e64207265636f7264732073797374656d206576656e747320746f207468652064617461626173652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31303a2264626c6f672e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/field/field.module', 'field', 'module', '', 1, 0, 7003, 0, 0x613a31333a7b733a343a226e616d65223b733a353a224669656c64223b733a31313a226465736372697074696f6e223b733a35373a224669656c642041504920746f20616464206669656c647320746f20656e746974696573206c696b65206e6f64657320616e642075736572732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a343a7b693a303b733a31323a226669656c642e6d6f64756c65223b693a313b733a31363a226669656c642e6174746163682e696e63223b693a323b733a32303a226669656c642e696e666f2e636c6173732e696e63223b693a333b733a31363a2274657374732f6669656c642e74657374223b7d733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a31373a226669656c645f73716c5f73746f72616765223b7d733a383a227265717569726564223b623a313b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31353a227468656d652f6669656c642e637373223b733a32393a226d6f64756c65732f6669656c642f7468656d652f6669656c642e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/field/modules/field_sql_storage/field_sql_storage.module', 'field_sql_storage', 'module', '', 1, 0, 7002, 0, 0x613a31323a7b733a343a226e616d65223b733a31373a224669656c642053514c2073746f72616765223b733a31313a226465736372697074696f6e223b733a33373a2253746f726573206669656c64206461746120696e20616e2053514c2064617461626173652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a353a226669656c64223b7d733a353a2266696c6573223b613a313a7b693a303b733a32323a226669656c645f73716c5f73746f726167652e74657374223b7d733a383a227265717569726564223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/field/modules/list/list.module', 'list', 'module', '', 1, 0, 7002, 0, 0x613a31313a7b733a343a226e616d65223b733a343a224c697374223b733a31313a226465736372697074696f6e223b733a36393a22446566696e6573206c697374206669656c642074797065732e205573652077697468204f7074696f6e7320746f206372656174652073656c656374696f6e206c697374732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a323a7b693a303b733a353a226669656c64223b693a313b733a373a226f7074696f6e73223b7d733a353a2266696c6573223b613a313a7b693a303b733a31353a2274657374732f6c6973742e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/field/modules/list/tests/list_test.module', 'list_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a393a224c6973742074657374223b733a31313a226465736372697074696f6e223b733a34313a22537570706f7274206d6f64756c6520666f7220746865204c697374206d6f64756c652074657374732e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/field/modules/number/number.module', 'number', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a363a224e756d626572223b733a31313a226465736372697074696f6e223b733a32383a22446566696e6573206e756d65726963206669656c642074797065732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a353a226669656c64223b7d733a353a2266696c6573223b613a313a7b693a303b733a31313a226e756d6265722e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/field/modules/options/options.module', 'options', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a373a224f7074696f6e73223b733a31313a226465736372697074696f6e223b733a38323a22446566696e65732073656c656374696f6e2c20636865636b20626f7820616e6420726164696f20627574746f6e207769646765747320666f72207465787420616e64206e756d65726963206669656c64732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a353a226669656c64223b7d733a353a2266696c6573223b613a313a7b693a303b733a31323a226f7074696f6e732e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/field/modules/text/text.module', 'text', 'module', '', 1, 0, 7000, 0, 0x613a31333a7b733a343a226e616d65223b733a343a2254657874223b733a31313a226465736372697074696f6e223b733a33323a22446566696e65732073696d706c652074657874206669656c642074797065732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a353a226669656c64223b7d733a353a2266696c6573223b613a313a7b693a303b733a393a22746578742e74657374223b7d733a383a227265717569726564223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b733a31313a226578706c616e6174696f6e223b733a3130343a224669656c64207479706528732920696e20757365202d20736565203c6120687265663d222f6d74745f7468656d65732f6769742f73696d706c65636f72702f736974652f61646d696e2f7265706f7274732f6669656c6473223e4669656c64206c6973743c2f613e223b7d), -('modules/field/tests/field_test.module', 'field_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31343a224669656c64204150492054657374223b733a31313a226465736372697074696f6e223b733a33393a22537570706f7274206d6f64756c6520666f7220746865204669656c64204150492074657374732e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a373a2254657374696e67223b733a353a2266696c6573223b613a313a7b693a303b733a32313a226669656c645f746573742e656e746974792e696e63223b7d733a373a2276657273696f6e223b733a343a22372e3233223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/field_ui/field_ui.module', 'field_ui', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a383a224669656c64205549223b733a31313a226465736372697074696f6e223b733a33333a225573657220696e7465726661636520666f7220746865204669656c64204150492e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a353a226669656c64223b7d733a353a2266696c6573223b613a313a7b693a303b733a31333a226669656c645f75692e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/file/file.module', 'file', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a343a2246696c65223b733a31313a226465736372697074696f6e223b733a32363a22446566696e657320612066696c65206669656c6420747970652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a353a226669656c64223b7d733a353a2266696c6573223b613a313a7b693a303b733a31353a2274657374732f66696c652e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/file/tests/file_module_test.module', 'file_module_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a393a2246696c652074657374223b733a31313a226465736372697074696f6e223b733a35333a2250726f766964657320686f6f6b7320666f722074657374696e672046696c65206d6f64756c652066756e6374696f6e616c6974792e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/filter/filter.module', 'filter', 'module', '', 1, 0, 7010, 0, 0x613a31333a7b733a343a226e616d65223b733a363a2246696c746572223b733a31313a226465736372697074696f6e223b733a34333a2246696c7465727320636f6e74656e7420696e207072657061726174696f6e20666f7220646973706c61792e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31313a2266696c7465722e74657374223b7d733a383a227265717569726564223b623a313b733a393a22636f6e666967757265223b733a32383a2261646d696e2f636f6e6669672f636f6e74656e742f666f726d617473223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/forum/forum.module', 'forum', 'module', '', 0, 0, -1, 0, 0x613a31333a7b733a343a226e616d65223b733a353a22466f72756d223b733a31313a226465736372697074696f6e223b733a32373a2250726f76696465732064697363757373696f6e20666f72756d732e223b733a31323a22646570656e64656e63696573223b613a323a7b693a303b733a383a227461786f6e6f6d79223b693a313b733a373a22636f6d6d656e74223b7d733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31303a22666f72756d2e74657374223b7d733a393a22636f6e666967757265223b733a32313a2261646d696e2f7374727563747572652f666f72756d223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a393a22666f72756d2e637373223b733a32333a226d6f64756c65732f666f72756d2f666f72756d2e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/help/help.module', 'help', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a343a2248656c70223b733a31313a226465736372697074696f6e223b733a33353a224d616e616765732074686520646973706c6179206f66206f6e6c696e652068656c702e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a393a2268656c702e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/image/image.module', 'image', 'module', '', 1, 0, 7005, 0, 0x613a31343a7b733a343a226e616d65223b733a353a22496d616765223b733a31313a226465736372697074696f6e223b733a33343a2250726f766964657320696d616765206d616e6970756c6174696f6e20746f6f6c732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a343a2266696c65223b7d733a353a2266696c6573223b613a313a7b693a303b733a31303a22696d6167652e74657374223b7d733a393a22636f6e666967757265223b733a33313a2261646d696e2f636f6e6669672f6d656469612f696d6167652d7374796c6573223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b733a383a227265717569726564223b623a313b733a31313a226578706c616e6174696f6e223b733a3130343a224669656c64207479706528732920696e20757365202d20736565203c6120687265663d222f6d74745f7468656d65732f6769742f73696d706c65636f72702f736974652f61646d696e2f7265706f7274732f6669656c6473223e4669656c64206c6973743c2f613e223b7d), -('modules/image/tests/image_module_test.module', 'image_module_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31303a22496d6167652074657374223b733a31313a226465736372697074696f6e223b733a36393a2250726f766964657320686f6f6b20696d706c656d656e746174696f6e7320666f722074657374696e6720496d616765206d6f64756c652066756e6374696f6e616c6974792e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a32343a22696d6167655f6d6f64756c655f746573742e6d6f64756c65223b7d733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/locale/locale.module', 'locale', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a363a224c6f63616c65223b733a31313a226465736372697074696f6e223b733a3131393a2241646473206c616e67756167652068616e646c696e672066756e6374696f6e616c69747920616e6420656e61626c657320746865207472616e736c6174696f6e206f6620746865207573657220696e7465726661636520746f206c616e677561676573206f74686572207468616e20456e676c6973682e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31313a226c6f63616c652e74657374223b7d733a393a22636f6e666967757265223b733a33303a2261646d696e2f636f6e6669672f726567696f6e616c2f6c616e6775616765223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/locale/tests/locale_test.module', 'locale_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31313a224c6f63616c652054657374223b733a31313a226465736372697074696f6e223b733a34323a22537570706f7274206d6f64756c6520666f7220746865206c6f63616c65206c617965722074657374732e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/menu/menu.module', 'menu', 'module', '', 1, 0, 7003, 0, 0x613a31323a7b733a343a226e616d65223b733a343a224d656e75223b733a31313a226465736372697074696f6e223b733a36303a22416c6c6f77732061646d696e6973747261746f727320746f20637573746f6d697a65207468652073697465206e617669676174696f6e206d656e752e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a393a226d656e752e74657374223b7d733a393a22636f6e666967757265223b733a32303a2261646d696e2f7374727563747572652f6d656e75223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/node/node.module', 'node', 'module', '', 1, 0, 7013, 0, 0x613a31343a7b733a343a226e616d65223b733a343a224e6f6465223b733a31313a226465736372697074696f6e223b733a36363a22416c6c6f777320636f6e74656e7420746f206265207375626d697474656420746f20746865207369746520616e6420646973706c61796564206f6e2070616765732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a323a7b693a303b733a31313a226e6f64652e6d6f64756c65223b693a313b733a393a226e6f64652e74657374223b7d733a383a227265717569726564223b623a313b733a393a22636f6e666967757265223b733a32313a2261646d696e2f7374727563747572652f7479706573223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a383a226e6f64652e637373223b733a32313a226d6f64756c65732f6e6f64652f6e6f64652e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/node/tests/node_access_test.module', 'node_access_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32343a224e6f6465206d6f64756c6520616363657373207465737473223b733a31313a226465736372697074696f6e223b733a34333a22537570706f7274206d6f64756c6520666f72206e6f6465207065726d697373696f6e2074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/node/tests/node_test.module', 'node_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31373a224e6f6465206d6f64756c65207465737473223b733a31313a226465736372697074696f6e223b733a34303a22537570706f7274206d6f64756c6520666f72206e6f64652072656c617465642074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/node/tests/node_test_exception.module', 'node_test_exception', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32373a224e6f6465206d6f64756c6520657863657074696f6e207465737473223b733a31313a226465736372697074696f6e223b733a35303a22537570706f7274206d6f64756c6520666f72206e6f64652072656c6174656420657863657074696f6e2074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/openid/openid.module', 'openid', 'module', '', 0, 0, -1, 0, 0x613a31313a7b733a343a226e616d65223b733a363a224f70656e4944223b733a31313a226465736372697074696f6e223b733a34383a22416c6c6f777320757365727320746f206c6f6720696e746f20796f75722073697465207573696e67204f70656e49442e223b733a373a2276657273696f6e223b733a343a22372e3233223b733a373a227061636b616765223b733a343a22436f7265223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31313a226f70656e69642e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/openid/tests/openid_test.module', 'openid_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32313a224f70656e49442064756d6d792070726f7669646572223b733a31313a226465736372697074696f6e223b733a33333a224f70656e49442070726f7669646572207573656420666f722074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a363a226f70656e6964223b7d733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/overlay/overlay.module', 'overlay', 'module', '', 1, 1, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a373a224f7665726c6179223b733a31313a226465736372697074696f6e223b733a35393a22446973706c617973207468652044727570616c2061646d696e697374726174696f6e20696e7465726661636520696e20616e206f7665726c61792e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/path/path.module', 'path', 'module', '', 1, 0, 0, 0, 0x613a31323a7b733a343a226e616d65223b733a343a2250617468223b733a31313a226465736372697074696f6e223b733a32383a22416c6c6f777320757365727320746f2072656e616d652055524c732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a393a22706174682e74657374223b7d733a393a22636f6e666967757265223b733a32343a2261646d696e2f636f6e6669672f7365617263682f70617468223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/php/php.module', 'php', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a31303a225048502066696c746572223b733a31313a226465736372697074696f6e223b733a35303a22416c6c6f777320656d6265646465642050485020636f64652f736e69707065747320746f206265206576616c75617465642e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a383a227068702e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/poll/poll.module', 'poll', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a343a22506f6c6c223b733a31313a226465736372697074696f6e223b733a39353a22416c6c6f777320796f7572207369746520746f206361707475726520766f746573206f6e20646966666572656e7420746f7069637320696e2074686520666f726d206f66206d756c7469706c652063686f696365207175657374696f6e732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a393a22706f6c6c2e74657374223b7d733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a383a22706f6c6c2e637373223b733a32313a226d6f64756c65732f706f6c6c2f706f6c6c2e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/profile/profile.module', 'profile', 'module', '', 0, 0, -1, 0, 0x613a31333a7b733a343a226e616d65223b733a373a2250726f66696c65223b733a31313a226465736372697074696f6e223b733a33363a22537570706f72747320636f6e666967757261626c6520757365722070726f66696c65732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31323a2270726f66696c652e74657374223b7d733a393a22636f6e666967757265223b733a32373a2261646d696e2f636f6e6669672f70656f706c652f70726f66696c65223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/rdf/rdf.module', 'rdf', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a333a22524446223b733a31313a226465736372697074696f6e223b733a3134383a22456e72696368657320796f757220636f6e74656e742077697468206d6574616461746120746f206c6574206f74686572206170706c69636174696f6e732028652e672e2073656172636820656e67696e65732c2061676772656761746f7273292062657474657220756e6465727374616e64206974732072656c6174696f6e736869707320616e6420617474726962757465732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a383a227264662e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/rdf/tests/rdf_test.module', 'rdf_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31363a22524446206d6f64756c65207465737473223b733a31313a226465736372697074696f6e223b733a33383a22537570706f7274206d6f64756c6520666f7220524446206d6f64756c652074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/search/search.module', 'search', 'module', '', 1, 0, 7000, 0, 0x613a31333a7b733a343a226e616d65223b733a363a22536561726368223b733a31313a226465736372697074696f6e223b733a33363a22456e61626c657320736974652d77696465206b6579776f726420736561726368696e672e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a323a7b693a303b733a31393a227365617263682e657874656e6465722e696e63223b693a313b733a31313a227365617263682e74657374223b7d733a393a22636f6e666967757265223b733a32383a2261646d696e2f636f6e6669672f7365617263682f73657474696e6773223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31303a227365617263682e637373223b733a32353a226d6f64756c65732f7365617263682f7365617263682e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/search/tests/search_embedded_form.module', 'search_embedded_form', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32303a2253656172636820656d62656464656420666f726d223b733a31313a226465736372697074696f6e223b733a35393a22537570706f7274206d6f64756c6520666f7220736561726368206d6f64756c652074657374696e67206f6620656d62656464656420666f726d732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/search/tests/search_extra_type.module', 'search_extra_type', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31363a2254657374207365617263682074797065223b733a31313a226465736372697074696f6e223b733a34313a22537570706f7274206d6f64756c6520666f7220736561726368206d6f64756c652074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/shortcut/shortcut.module', 'shortcut', 'module', '', 1, 0, 0, 0, 0x613a31323a7b733a343a226e616d65223b733a383a2253686f7274637574223b733a31313a226465736372697074696f6e223b733a36303a22416c6c6f777320757365727320746f206d616e61676520637573746f6d697a61626c65206c69737473206f662073686f7274637574206c696e6b732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31333a2273686f72746375742e74657374223b7d733a393a22636f6e666967757265223b733a33363a2261646d696e2f636f6e6669672f757365722d696e746572666163652f73686f7274637574223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/simpletest.module', 'simpletest', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a373a2254657374696e67223b733a31313a226465736372697074696f6e223b733a35333a2250726f76696465732061206672616d65776f726b20666f7220756e697420616e642066756e6374696f6e616c2074657374696e672e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a34383a7b693a303b733a31353a2273696d706c65746573742e74657374223b693a313b733a32343a2264727570616c5f7765625f746573745f636173652e706870223b693a323b733a31383a2274657374732f616374696f6e732e74657374223b693a333b733a31353a2274657374732f616a61782e74657374223b693a343b733a31363a2274657374732f62617463682e74657374223b693a353b733a32303a2274657374732f626f6f7473747261702e74657374223b693a363b733a31363a2274657374732f63616368652e74657374223b693a373b733a31373a2274657374732f636f6d6d6f6e2e74657374223b693a383b733a32343a2274657374732f64617461626173655f746573742e74657374223b693a393b733a33323a2274657374732f656e746974795f637275645f686f6f6b5f746573742e74657374223b693a31303b733a32333a2274657374732f656e746974795f71756572792e74657374223b693a31313b733a31363a2274657374732f6572726f722e74657374223b693a31323b733a31353a2274657374732f66696c652e74657374223b693a31333b733a32333a2274657374732f66696c657472616e736665722e74657374223b693a31343b733a31353a2274657374732f666f726d2e74657374223b693a31353b733a31363a2274657374732f67726170682e74657374223b693a31363b733a31363a2274657374732f696d6167652e74657374223b693a31373b733a31353a2274657374732f6c6f636b2e74657374223b693a31383b733a31353a2274657374732f6d61696c2e74657374223b693a31393b733a31353a2274657374732f6d656e752e74657374223b693a32303b733a31373a2274657374732f6d6f64756c652e74657374223b693a32313b733a31363a2274657374732f70616765722e74657374223b693a32323b733a31393a2274657374732f70617373776f72642e74657374223b693a32333b733a31353a2274657374732f706174682e74657374223b693a32343b733a31393a2274657374732f72656769737472792e74657374223b693a32353b733a31373a2274657374732f736368656d612e74657374223b693a32363b733a31383a2274657374732f73657373696f6e2e74657374223b693a32373b733a32303a2274657374732f7461626c65736f72742e74657374223b693a32383b733a31363a2274657374732f7468656d652e74657374223b693a32393b733a31383a2274657374732f756e69636f64652e74657374223b693a33303b733a31373a2274657374732f7570646174652e74657374223b693a33313b733a31373a2274657374732f786d6c7270632e74657374223b693a33323b733a32363a2274657374732f757067726164652f757067726164652e74657374223b693a33333b733a33343a2274657374732f757067726164652f757067726164652e636f6d6d656e742e74657374223b693a33343b733a33333a2274657374732f757067726164652f757067726164652e66696c7465722e74657374223b693a33353b733a33323a2274657374732f757067726164652f757067726164652e666f72756d2e74657374223b693a33363b733a33333a2274657374732f757067726164652f757067726164652e6c6f63616c652e74657374223b693a33373b733a33313a2274657374732f757067726164652f757067726164652e6d656e752e74657374223b693a33383b733a33313a2274657374732f757067726164652f757067726164652e6e6f64652e74657374223b693a33393b733a33353a2274657374732f757067726164652f757067726164652e7461786f6e6f6d792e74657374223b693a34303b733a33343a2274657374732f757067726164652f757067726164652e747269676765722e74657374223b693a34313b733a33393a2274657374732f757067726164652f757067726164652e7472616e736c617461626c652e74657374223b693a34323b733a33333a2274657374732f757067726164652f757067726164652e75706c6f61642e74657374223b693a34333b733a33313a2274657374732f757067726164652f757067726164652e757365722e74657374223b693a34343b733a33363a2274657374732f757067726164652f7570646174652e61676772656761746f722e74657374223b693a34353b733a33333a2274657374732f757067726164652f7570646174652e747269676765722e74657374223b693a34363b733a33313a2274657374732f757067726164652f7570646174652e6669656c642e74657374223b693a34373b733a33303a2274657374732f757067726164652f7570646174652e757365722e74657374223b7d733a393a22636f6e666967757265223b733a34313a2261646d696e2f636f6e6669672f646576656c6f706d656e742f74657374696e672f73657474696e6773223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/actions_loop_test.module', 'actions_loop_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31373a22416374696f6e73206c6f6f702074657374223b733a31313a226465736372697074696f6e223b733a33393a22537570706f7274206d6f64756c6520666f7220616374696f6e206c6f6f702074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/ajax_forms_test.module', 'ajax_forms_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32363a22414a415820666f726d2074657374206d6f636b206d6f64756c65223b733a31313a226465736372697074696f6e223b733a32353a225465737420666f7220414a415820666f726d2063616c6c732e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/ajax_test.module', 'ajax_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a393a22414a41582054657374223b733a31313a226465736372697074696f6e223b733a34303a22537570706f7274206d6f64756c6520666f7220414a4158206672616d65776f726b2074657374732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d); -INSERT INTO `system` (`filename`, `name`, `type`, `owner`, `status`, `bootstrap`, `schema_version`, `weight`, `info`) VALUES -('modules/simpletest/tests/batch_test.module', 'batch_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31343a224261746368204150492074657374223b733a31313a226465736372697074696f6e223b733a33353a22537570706f7274206d6f64756c6520666f72204261746368204150492074657374732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/common_test.module', 'common_test', 'module', '', 0, 0, -1, 0, 0x613a31333a7b733a343a226e616d65223b733a31313a22436f6d6d6f6e2054657374223b733a31313a226465736372697074696f6e223b733a33323a22537570706f7274206d6f64756c6520666f7220436f6d6d6f6e2074657374732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a313a7b733a31353a22636f6d6d6f6e5f746573742e637373223b733a34303a226d6f64756c65732f73696d706c65746573742f74657374732f636f6d6d6f6e5f746573742e637373223b7d733a353a227072696e74223b613a313a7b733a32313a22636f6d6d6f6e5f746573742e7072696e742e637373223b733a34363a226d6f64756c65732f73696d706c65746573742f74657374732f636f6d6d6f6e5f746573742e7072696e742e637373223b7d7d733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/common_test_cron_helper.module', 'common_test_cron_helper', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32333a22436f6d6d6f6e20546573742043726f6e2048656c706572223b733a31313a226465736372697074696f6e223b733a35363a2248656c706572206d6f64756c6520666f722043726f6e52756e54657374436173653a3a7465737443726f6e457863657074696f6e7328292e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/database_test.module', 'database_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31333a2244617461626173652054657374223b733a31313a226465736372697074696f6e223b733a34303a22537570706f7274206d6f64756c6520666f72204461746162617365206c617965722074657374732e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.module', 'drupal_system_listing_compatible_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a33373a2244727570616c2073797374656d206c697374696e6720636f6d70617469626c652074657374223b733a31313a226465736372697074696f6e223b733a36323a22537570706f7274206d6f64756c6520666f722074657374696e67207468652064727570616c5f73797374656d5f6c697374696e672066756e6374696f6e2e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.module', 'drupal_system_listing_incompatible_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a33393a2244727570616c2073797374656d206c697374696e6720696e636f6d70617469626c652074657374223b733a31313a226465736372697074696f6e223b733a36323a22537570706f7274206d6f64756c6520666f722074657374696e67207468652064727570616c5f73797374656d5f6c697374696e672066756e6374696f6e2e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/entity_cache_test.module', 'entity_cache_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31373a22456e746974792063616368652074657374223b733a31313a226465736372697074696f6e223b733a34303a22537570706f7274206d6f64756c6520666f722074657374696e6720656e746974792063616368652e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a32383a22656e746974795f63616368655f746573745f646570656e64656e6379223b7d733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/entity_cache_test_dependency.module', 'entity_cache_test_dependency', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32383a22456e74697479206361636865207465737420646570656e64656e6379223b733a31313a226465736372697074696f6e223b733a35313a22537570706f727420646570656e64656e6379206d6f64756c6520666f722074657374696e6720656e746974792063616368652e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/entity_crud_hook_test.module', 'entity_crud_hook_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32323a22456e74697479204352554420486f6f6b732054657374223b733a31313a226465736372697074696f6e223b733a33353a22537570706f7274206d6f64756c6520666f72204352554420686f6f6b2074657374732e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/entity_query_access_test.module', 'entity_query_access_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32343a22456e74697479207175657279206163636573732074657374223b733a31313a226465736372697074696f6e223b733a34393a22537570706f7274206d6f64756c6520666f7220636865636b696e6720656e7469747920717565727920726573756c74732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/error_test.module', 'error_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31303a224572726f722074657374223b733a31313a226465736372697074696f6e223b733a34373a22537570706f7274206d6f64756c6520666f72206572726f7220616e6420657863657074696f6e2074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/file_test.module', 'file_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a393a2246696c652074657374223b733a31313a226465736372697074696f6e223b733a33393a22537570706f7274206d6f64756c6520666f722066696c652068616e646c696e672074657374732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31363a2266696c655f746573742e6d6f64756c65223b7d733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/filter_test.module', 'filter_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31383a2246696c7465722074657374206d6f64756c65223b733a31313a226465736372697074696f6e223b733a33333a2254657374732066696c74657220686f6f6b7320616e642066756e6374696f6e732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/form_test.module', 'form_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31323a22466f726d4150492054657374223b733a31313a226465736372697074696f6e223b733a33343a22537570706f7274206d6f64756c6520666f7220466f726d204150492074657374732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/image_test.module', 'image_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31303a22496d6167652074657374223b733a31313a226465736372697074696f6e223b733a33393a22537570706f7274206d6f64756c6520666f7220696d61676520746f6f6c6b69742074657374732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/menu_test.module', 'menu_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31353a22486f6f6b206d656e75207465737473223b733a31313a226465736372697074696f6e223b733a33373a22537570706f7274206d6f64756c6520666f72206d656e7520686f6f6b2074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/module_test.module', 'module_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31313a224d6f64756c652074657374223b733a31313a226465736372697074696f6e223b733a34313a22537570706f7274206d6f64756c6520666f72206d6f64756c652073797374656d2074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/path_test.module', 'path_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31353a22486f6f6b2070617468207465737473223b733a31313a226465736372697074696f6e223b733a33373a22537570706f7274206d6f64756c6520666f72207061746820686f6f6b2074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/psr_0_test/psr_0_test.module', 'psr_0_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31363a225053522d302054657374206361736573223b733a31313a226465736372697074696f6e223b733a34343a225465737420636c617373657320746f20626520646973636f76657265642062792073696d706c65746573742e223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/requirements1_test.module', 'requirements1_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31393a22526571756972656d656e747320312054657374223b733a31313a226465736372697074696f6e223b733a38303a22546573747320746861742061206d6f64756c65206973206e6f7420696e7374616c6c6564207768656e206974206661696c7320686f6f6b5f726571756972656d656e74732827696e7374616c6c27292e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/requirements2_test.module', 'requirements2_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31393a22526571756972656d656e747320322054657374223b733a31313a226465736372697074696f6e223b733a39383a22546573747320746861742061206d6f64756c65206973206e6f7420696e7374616c6c6564207768656e20746865206f6e6520697420646570656e6473206f6e206661696c7320686f6f6b5f726571756972656d656e74732827696e7374616c6c292e223b733a31323a22646570656e64656e63696573223b613a323a7b693a303b733a31383a22726571756972656d656e7473315f74657374223b693a313b733a373a22636f6d6d656e74223b7d733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/session_test.module', 'session_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31323a2253657373696f6e2074657374223b733a31313a226465736372697074696f6e223b733a34303a22537570706f7274206d6f64756c6520666f722073657373696f6e20646174612074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/system_dependencies_test.module', 'system_dependencies_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32323a2253797374656d20646570656e64656e63792074657374223b733a31313a226465736372697074696f6e223b733a34373a22537570706f7274206d6f64756c6520666f722074657374696e672073797374656d20646570656e64656e636965732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a31393a225f6d697373696e675f646570656e64656e6379223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module', 'system_incompatible_core_version_dependencies_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a35303a2253797374656d20696e636f6d70617469626c6520636f72652076657273696f6e20646570656e64656e636965732074657374223b733a31313a226465736372697074696f6e223b733a34373a22537570706f7274206d6f64756c6520666f722074657374696e672073797374656d20646570656e64656e636965732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a33373a2273797374656d5f696e636f6d70617469626c655f636f72655f76657273696f6e5f74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/system_incompatible_core_version_test.module', 'system_incompatible_core_version_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a33373a2253797374656d20696e636f6d70617469626c6520636f72652076657273696f6e2074657374223b733a31313a226465736372697074696f6e223b733a34373a22537570706f7274206d6f64756c6520666f722074657374696e672073797374656d20646570656e64656e636965732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22352e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module', 'system_incompatible_module_version_dependencies_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a35323a2253797374656d20696e636f6d70617469626c65206d6f64756c652076657273696f6e20646570656e64656e636965732074657374223b733a31313a226465736372697074696f6e223b733a34373a22537570706f7274206d6f64756c6520666f722074657374696e672073797374656d20646570656e64656e636965732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a34363a2273797374656d5f696e636f6d70617469626c655f6d6f64756c655f76657273696f6e5f7465737420283e322e3029223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/system_incompatible_module_version_test.module', 'system_incompatible_module_version_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a33393a2253797374656d20696e636f6d70617469626c65206d6f64756c652076657273696f6e2074657374223b733a31313a226465736372697074696f6e223b733a34373a22537570706f7274206d6f64756c6520666f722074657374696e672073797374656d20646570656e64656e636965732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/system_test.module', 'system_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31313a2253797374656d2074657374223b733a31313a226465736372697074696f6e223b733a33343a22537570706f7274206d6f64756c6520666f722073797374656d2074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31383a2273797374656d5f746573742e6d6f64756c65223b7d733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/taxonomy_test.module', 'taxonomy_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32303a225461786f6e6f6d792074657374206d6f64756c65223b733a31313a226465736372697074696f6e223b733a34353a222254657374732066756e6374696f6e7320616e6420686f6f6b73206e6f74207573656420696e20636f7265222e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a383a227461786f6e6f6d79223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/theme_test.module', 'theme_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31303a225468656d652074657374223b733a31313a226465736372697074696f6e223b733a34303a22537570706f7274206d6f64756c6520666f72207468656d652073797374656d2074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/update_script_test.module', 'update_script_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31383a22557064617465207363726970742074657374223b733a31313a226465736372697074696f6e223b733a34313a22537570706f7274206d6f64756c6520666f7220757064617465207363726970742074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/update_test_1.module', 'update_test_1', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31313a225570646174652074657374223b733a31313a226465736372697074696f6e223b733a33343a22537570706f7274206d6f64756c6520666f72207570646174652074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/update_test_2.module', 'update_test_2', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31313a225570646174652074657374223b733a31313a226465736372697074696f6e223b733a33343a22537570706f7274206d6f64756c6520666f72207570646174652074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/update_test_3.module', 'update_test_3', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31313a225570646174652074657374223b733a31313a226465736372697074696f6e223b733a33343a22537570706f7274206d6f64756c6520666f72207570646174652074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/url_alter_test.module', 'url_alter_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31353a2255726c5f616c746572207465737473223b733a31313a226465736372697074696f6e223b733a34353a224120737570706f7274206d6f64756c657320666f722075726c5f616c74657220686f6f6b2074657374696e672e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/simpletest/tests/xmlrpc_test.module', 'xmlrpc_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31323a22584d4c2d5250432054657374223b733a31313a226465736372697074696f6e223b733a37353a22537570706f7274206d6f64756c6520666f7220584d4c2d525043207465737473206163636f7264696e6720746f207468652076616c696461746f72312073706563696669636174696f6e2e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/statistics/statistics.module', 'statistics', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31303a2253746174697374696373223b733a31313a226465736372697074696f6e223b733a33373a224c6f677320616363657373207374617469737469637320666f7220796f757220736974652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31353a22737461746973746963732e74657374223b7d733a393a22636f6e666967757265223b733a33303a2261646d696e2f636f6e6669672f73797374656d2f73746174697374696373223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/syslog/syslog.module', 'syslog', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a363a225379736c6f67223b733a31313a226465736372697074696f6e223b733a34313a224c6f677320616e64207265636f7264732073797374656d206576656e747320746f207379736c6f672e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31313a227379736c6f672e74657374223b7d733a393a22636f6e666967757265223b733a33323a2261646d696e2f636f6e6669672f646576656c6f706d656e742f6c6f6767696e67223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/system/system.module', 'system', 'module', '', 1, 0, 7078, 0, 0x613a31333a7b733a343a226e616d65223b733a363a2253797374656d223b733a31313a226465736372697074696f6e223b733a35343a2248616e646c65732067656e6572616c207369746520636f6e66696775726174696f6e20666f722061646d696e6973747261746f72732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a363a7b693a303b733a31393a2273797374656d2e61726368697665722e696e63223b693a313b733a31353a2273797374656d2e6d61696c2e696e63223b693a323b733a31363a2273797374656d2e71756575652e696e63223b693a333b733a31343a2273797374656d2e7461722e696e63223b693a343b733a31383a2273797374656d2e757064617465722e696e63223b693a353b733a31313a2273797374656d2e74657374223b7d733a383a227265717569726564223b623a313b733a393a22636f6e666967757265223b733a31393a2261646d696e2f636f6e6669672f73797374656d223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/taxonomy/taxonomy.module', 'taxonomy', 'module', '', 1, 0, 7010, 0, 0x613a31343a7b733a343a226e616d65223b733a383a225461786f6e6f6d79223b733a31313a226465736372697074696f6e223b733a33383a22456e61626c6573207468652063617465676f72697a6174696f6e206f6620636f6e74656e742e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a373a226f7074696f6e73223b7d733a353a2266696c6573223b613a323a7b693a303b733a31353a227461786f6e6f6d792e6d6f64756c65223b693a313b733a31333a227461786f6e6f6d792e74657374223b7d733a393a22636f6e666967757265223b733a32343a2261646d696e2f7374727563747572652f7461786f6e6f6d79223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b733a383a227265717569726564223b623a313b733a31313a226578706c616e6174696f6e223b733a3130343a224669656c64207479706528732920696e20757365202d20736565203c6120687265663d222f6d74745f7468656d65732f6769742f73696d706c65636f72702f736974652f61646d696e2f7265706f7274732f6669656c6473223e4669656c64206c6973743c2f613e223b7d), -('modules/toolbar/toolbar.module', 'toolbar', 'module', '', 1, 0, 0, 0, 0x613a31313a7b733a343a226e616d65223b733a373a22546f6f6c626172223b733a31313a226465736372697074696f6e223b733a39393a2250726f7669646573206120746f6f6c62617220746861742073686f77732074686520746f702d6c6576656c2061646d696e697374726174696f6e206d656e75206974656d7320616e64206c696e6b732066726f6d206f74686572206d6f64756c65732e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/tracker/tracker.module', 'tracker', 'module', '', 0, 0, -1, 0, 0x613a31313a7b733a343a226e616d65223b733a373a22547261636b6572223b733a31313a226465736372697074696f6e223b733a34353a22456e61626c657320747261636b696e67206f6620726563656e7420636f6e74656e7420666f722075736572732e223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a373a22636f6d6d656e74223b7d733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31323a22747261636b65722e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/translation/tests/translation_test.module', 'translation_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32343a22436f6e74656e74205472616e736c6174696f6e2054657374223b733a31313a226465736372697074696f6e223b733a34393a22537570706f7274206d6f64756c6520666f722074686520636f6e74656e74207472616e736c6174696f6e2074657374732e223b733a343a22636f7265223b733a333a22372e78223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/translation/translation.module', 'translation', 'module', '', 0, 0, -1, 0, 0x613a31313a7b733a343a226e616d65223b733a31393a22436f6e74656e74207472616e736c6174696f6e223b733a31313a226465736372697074696f6e223b733a35373a22416c6c6f777320636f6e74656e7420746f206265207472616e736c6174656420696e746f20646966666572656e74206c616e6775616765732e223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a363a226c6f63616c65223b7d733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31363a227472616e736c6174696f6e2e74657374223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/trigger/tests/trigger_test.module', 'trigger_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31323a22547269676765722054657374223b733a31313a226465736372697074696f6e223b733a33333a22537570706f7274206d6f64756c6520666f7220547269676765722074657374732e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2276657273696f6e223b733a343a22372e3233223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/trigger/trigger.module', 'trigger', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a373a2254726967676572223b733a31313a226465736372697074696f6e223b733a39303a22456e61626c657320616374696f6e7320746f206265206669726564206f6e206365727461696e2073797374656d206576656e74732c2073756368206173207768656e206e657720636f6e74656e7420697320637265617465642e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31323a22747269676765722e74657374223b7d733a393a22636f6e666967757265223b733a32333a2261646d696e2f7374727563747572652f74726967676572223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/update/tests/aaa_update_test.module', 'aaa_update_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31353a22414141205570646174652074657374223b733a31313a226465736372697074696f6e223b733a34313a22537570706f7274206d6f64756c6520666f7220757064617465206d6f64756c652074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2276657273696f6e223b733a343a22372e3233223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/update/tests/bbb_update_test.module', 'bbb_update_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31353a22424242205570646174652074657374223b733a31313a226465736372697074696f6e223b733a34313a22537570706f7274206d6f64756c6520666f7220757064617465206d6f64756c652074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2276657273696f6e223b733a343a22372e3233223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/update/tests/ccc_update_test.module', 'ccc_update_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31353a22434343205570646174652074657374223b733a31313a226465736372697074696f6e223b733a34313a22537570706f7274206d6f64756c6520666f7220757064617465206d6f64756c652074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2276657273696f6e223b733a343a22372e3233223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/update/tests/update_test.module', 'update_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a31313a225570646174652074657374223b733a31313a226465736372697074696f6e223b733a34313a22537570706f7274206d6f64756c6520666f7220757064617465206d6f64756c652074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/update/update.module', 'update', 'module', '', 1, 0, 7001, 0, 0x613a31323a7b733a343a226e616d65223b733a31343a22557064617465206d616e61676572223b733a31313a226465736372697074696f6e223b733a3130343a22436865636b7320666f7220617661696c61626c6520757064617465732c20616e642063616e207365637572656c7920696e7374616c6c206f7220757064617465206d6f64756c657320616e64207468656d65732076696120612077656220696e746572666163652e223b733a373a2276657273696f6e223b733a343a22372e3233223b733a373a227061636b616765223b733a343a22436f7265223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a31313a227570646174652e74657374223b7d733a393a22636f6e666967757265223b733a33303a2261646d696e2f7265706f7274732f757064617465732f73657474696e6773223b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('modules/user/tests/user_form_test.module', 'user_form_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32323a2255736572206d6f64756c6520666f726d207465737473223b733a31313a226465736372697074696f6e223b733a33373a22537570706f7274206d6f64756c6520666f72207573657220666f726d2074657374696e672e223b733a373a227061636b616765223b733a373a2254657374696e67223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a363a2268696464656e223b623a313b733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('modules/user/user.module', 'user', 'module', '', 1, 0, 7018, 0, 0x613a31343a7b733a343a226e616d65223b733a343a2255736572223b733a31313a226465736372697074696f6e223b733a34373a224d616e6167657320746865207573657220726567697374726174696f6e20616e64206c6f67696e2073797374656d2e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a323a7b693a303b733a31313a22757365722e6d6f64756c65223b693a313b733a393a22757365722e74657374223b7d733a383a227265717569726564223b623a313b733a393a22636f6e666967757265223b733a31393a2261646d696e2f636f6e6669672f70656f706c65223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a383a22757365722e637373223b733a32313a226d6f64756c65732f757365722f757365722e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('profiles/standard/standard.profile', 'standard', 'module', '', 1, 0, 0, 1000, 0x613a31343a7b733a343a226e616d65223b733a383a225374616e64617264223b733a31313a226465736372697074696f6e223b733a35313a22496e7374616c6c207769746820636f6d6d6f6e6c792075736564206665617475726573207072652d636f6e666967757265642e223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a32313a7b693a303b733a353a22626c6f636b223b693a313b733a353a22636f6c6f72223b693a323b733a373a22636f6d6d656e74223b693a333b733a31303a22636f6e7465787475616c223b693a343b733a393a2264617368626f617264223b693a353b733a343a2268656c70223b693a363b733a353a22696d616765223b693a373b733a343a226c697374223b693a383b733a343a226d656e75223b693a393b733a363a226e756d626572223b693a31303b733a373a226f7074696f6e73223b693a31313b733a343a2270617468223b693a31323b733a383a227461786f6e6f6d79223b693a31333b733a353a2264626c6f67223b693a31343b733a363a22736561726368223b693a31353b733a383a2273686f7274637574223b693a31363b733a373a22746f6f6c626172223b693a31373b733a373a226f7665726c6179223b693a31383b733a383a226669656c645f7569223b693a31393b733a343a2266696c65223b693a32303b733a333a22726466223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a373a227061636b616765223b733a353a224f74686572223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b733a363a2268696464656e223b623a313b733a383a227265717569726564223b623a313b733a31373a22646973747269627574696f6e5f6e616d65223b733a363a2244727570616c223b7d), -('sites/all/modules/libraries/libraries.module', 'libraries', 'module', '', 1, 0, 7200, 0, 0x613a31313a7b733a343a226e616d65223b733a393a224c6962726172696573223b733a31313a226465736372697074696f6e223b733a36343a22416c6c6f77732076657273696f6e2d646570656e64656e7420616e6420736861726564207573616765206f662065787465726e616c206c69627261726965732e223b733a343a22636f7265223b733a333a22372e78223b733a353a2266696c6573223b613a313a7b693a303b733a32303a2274657374732f6c69627261726965732e74657374223b7d733a373a2276657273696f6e223b733a373a22372e782d322e31223b733a373a2270726f6a656374223b733a393a226c6962726172696573223b733a393a22646174657374616d70223b733a31303a2231333632383438343132223b733a31323a22646570656e64656e63696573223b613a303a7b7d733a373a227061636b616765223b733a353a224f74686572223b733a333a22706870223b733a353a22352e322e34223b733a393a22626f6f747374726170223b693a303b7d), -('sites/all/modules/libraries/tests/libraries_test.module', 'libraries_test', 'module', '', 0, 0, -1, 0, 0x613a31323a7b733a343a226e616d65223b733a32313a224c69627261726965732074657374206d6f64756c65223b733a31313a226465736372697074696f6e223b733a33363a225465737473206c69627261727920646574656374696f6e20616e64206c6f6164696e672e223b733a343a22636f7265223b733a333a22372e78223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a393a226c6962726172696573223b7d733a363a2268696464656e223b623a313b733a373a2276657273696f6e223b733a373a22372e782d322e31223b733a373a2270726f6a656374223b733a393a226c6962726172696573223b733a393a22646174657374616d70223b733a31303a2231333632383438343132223b733a373a227061636b616765223b733a353a224f74686572223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d); -INSERT INTO `system` (`filename`, `name`, `type`, `owner`, `status`, `bootstrap`, `schema_version`, `weight`, `info`) VALUES -('sites/all/modules/superfish/superfish.module', 'superfish', 'module', '', 1, 0, 7100, 0, 0x613a31323a7b733a343a226e616d65223b733a393a22537570657266697368223b733a31313a226465736372697074696f6e223b733a34363a226a51756572792053757065726669736820706c7567696e20666f7220796f75722044727570616c206d656e75732e223b733a373a227061636b616765223b733a31343a225573657220696e74657266616365223b733a31323a22646570656e64656e63696573223b613a313a7b693a303b733a343a226d656e75223b7d733a393a22636f6e666967757265223b733a33373a2261646d696e2f636f6e6669672f757365722d696e746572666163652f737570657266697368223b733a343a22636f7265223b733a333a22372e78223b733a373a2276657273696f6e223b733a373a22372e782d312e39223b733a373a2270726f6a656374223b733a393a22737570657266697368223b733a393a22646174657374616d70223b733a31303a2231333637303534313132223b733a333a22706870223b733a353a22352e322e34223b733a353a2266696c6573223b613a303a7b7d733a393a22626f6f747374726170223b693a303b7d), -('sites/all/themes/simplecorp/simplecorp.info', 'simplecorp', 'theme', 'themes/engines/phptemplate/phptemplate.engine', 1, 0, -1, 0, 0x613a31353a7b733a343a226e616d65223b733a31303a2253696d706c65436f7270223b733a31313a226465736372697074696f6e223b733a3335323a224120666c657869626c6520726573706f6e73697665207468656d652077697468206d616e7920726567696f6e7320737570706f72746564206279203c6120687265663d22687474703a2f2f7777772e6d6f72657468616e7468656d65732e636f6d2f22207461726765743d225f626c616e6b223e4d6f7265207468616e20286a75737429205468656d65733c2f613e2e20496620796f75206c696b652074686973207468656d652c20776520656e636f757261676520796f7520746f2074727920616c736f206f7572206f74686572203c6120687265663d22687474703a2f2f7777772e6d6f72657468616e7468656d65732e636f6d22207461726765743d225f626c616e6b223e5072656d69756d3c2f613e20616e64203c6120687265663d22687474703a2f2f64727570616c697a696e672e636f6d22207461726765743d225f626c616e6b223e467265653c2f613e2044727570616c207468656d65732e223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a343a7b733a333a22616c6c223b613a343a7b733a31363a226373732f6d61696e2d6373732e637373223b733a34343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6d61696e2d6373732e637373223b733a31373a226373732f6e6f726d616c697a652e637373223b733a34353a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6e6f726d616c697a652e637373223b733a32363a226373732f706c7567696e732f666c6578736c696465722e637373223b733a35343a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f706c7567696e732f666c6578736c696465722e637373223b733a31333a226373732f6c6f63616c2e637373223b733a34313a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f6c6f63616c2e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2037363870782920616e6420286d61782d77696474683a20393539707829223b613a313a7b733a31313a226373732f3736382e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3736382e637373223b7d733a34393a22616c6c20616e6420286d696e2d77696474683a2034383070782920616e6420286d61782d77696474683a20373637707829223b613a313a7b733a31313a226373732f3438302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3438302e637373223b7d733a32363a22616c6c20616e6420286d61782d77696474683a20343739707829223b613a313a7b733a31313a226373732f3332302e637373223b733a33393a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f6373732f3332302e637373223b7d7d733a373a22726567696f6e73223b613a32303a7b733a363a22686561646572223b733a363a22486561646572223b733a31303a226e617669676174696f6e223b733a31303a224e617669676174696f6e223b733a31313a22746f705f636f6e74656e74223b733a31313a22546f7020436f6e74656e74223b733a363a2262616e6e6572223b733a363a2242616e6e6572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a31333a22736964656261725f6669727374223b733a31333a2253696465626172204669727374223b733a31343a22736964656261725f7365636f6e64223b733a31343a2253696465626172205365636f6e64223b733a31343a22626f74746f6d5f636f6e74656e74223b733a31343a22426f74746f6d20436f6e74656e74223b733a31323a22666f6f7465725f6669727374223b733a31323a22466f6f746572204669727374223b733a31333a22666f6f7465725f7365636f6e64223b733a31333a22466f6f746572205365636f6e64223b733a31323a22666f6f7465725f7468697264223b733a31323a22466f6f746572205468697264223b733a31333a22666f6f7465725f666f75727468223b733a31333a22466f6f74657220466f75727468223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a2273657474696e6773223b613a33343a7b733a31383a2262726561646372756d625f646973706c6179223b733a313a2231223b733a32303a2262726561646372756d625f736570617261746f72223b733a313a222f223b733a31393a226d61696e5f6d656e755f637573746f6d5f6a73223b733a313a2231223b733a31373a226865616465725f746f6f6c7469705f6a73223b733a313a2231223b733a32303a22736f6369616c5f69636f6e735f646973706c6179223b733a313a2231223b733a31393a22686967686c6967687465645f646973706c6179223b733a313a2231223b733a31363a226361726f7573656c5f646973706c6179223b733a313a2231223b733a31313a226361726f7573656c5f6a73223b733a313a2231223b733a32303a226361726f7573656c5f6566666563745f74696d65223b733a333a22302e36223b733a31353a226361726f7573656c5f656666656374223b733a31313a22656173654f757443697263223b733a31373a22736c69646573686f775f646973706c6179223b733a313a2231223b733a31323a22736c69646573686f775f6a73223b733a313a2231223b733a31363a22736c69646573686f775f656666656374223b733a353a22736c696465223b733a32313a22736c69646573686f775f6566666563745f74696d65223b733a313a2235223b733a31363a22736c69646573686f775f72616e646f6d223b733a313a2230223b733a31383a22736c69646573686f775f636f6e74726f6c73223b733a313a2231223b733a31353a22736c69646573686f775f7061757365223b733a313a2231223b733a31353a22736c69646573686f775f746f756368223b733a313a2231223b733a31353a22726573706f6e736976655f6d657461223b733a313a2231223b733a31383a22726573706f6e736976655f726573706f6e64223b733a313a2230223b733a31323a22627574746f6e5f636f6c6f72223b733a31303a22737465656c5f626c7565223b733a31313a227468656d655f636f6c6f72223b733a373a2264656661756c74223b733a31343a22636f6c756d6e735f656e61626c65223b733a313a2230223b733a31323a226c697374735f656e61626c65223b733a313a2230223b733a31323a22626f7865735f656e61626c65223b733a313a2230223b733a31323a22717569636b73616e645f6a73223b733a313a2230223b733a31343a2270726574747970686f746f5f6a73223b733a313a2231223b733a31373a2270726574747970686f746f5f7468656d65223b733a31303a2270705f64656661756c74223b733a32343a2270726574747970686f746f5f736f6369616c5f746f6f6c73223b733a313a2231223b733a31373a226a7477656574616e7977686572655f6a73223b733a313a2230223b733a31373a226a7477656574616e7977686572655f6964223b733a31343a226d6f72657468616e7468656d6573223b733a32313a22726573706f6e736976655f6d656e755f7374617465223b733a313a2231223b733a32373a22726573706f6e736976655f6d656e755f7377697463687769647468223b733a333a22393630223b733a32393a22726573706f6e736976655f6d656e755f746f706f7074696f6e74657874223b733a31333a2253656c65637420612070616765223b7d733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a34323a2273697465732f616c6c2f7468656d65732f73696d706c65636f72702f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d), -('themes/bartik/bartik.info', 'bartik', 'theme', 'themes/engines/phptemplate/phptemplate.engine', 1, 0, -1, 0, 0x613a31383a7b733a343a226e616d65223b733a363a2242617274696b223b733a31313a226465736372697074696f6e223b733a34383a224120666c657869626c652c207265636f6c6f7261626c65207468656d652077697468206d616e7920726567696f6e732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a333a7b733a31343a226373732f6c61796f75742e637373223b733a32383a227468656d65732f62617274696b2f6373732f6c61796f75742e637373223b733a31333a226373732f7374796c652e637373223b733a32373a227468656d65732f62617274696b2f6373732f7374796c652e637373223b733a31343a226373732f636f6c6f72732e637373223b733a32383a227468656d65732f62617274696b2f6373732f636f6c6f72732e637373223b7d733a353a227072696e74223b613a313a7b733a31333a226373732f7072696e742e637373223b733a32373a227468656d65732f62617274696b2f6373732f7072696e742e637373223b7d7d733a373a22726567696f6e73223b613a32303a7b733a363a22686561646572223b733a363a22486561646572223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a383a226665617475726564223b733a383a224665617475726564223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a31333a22736964656261725f6669727374223b733a31333a2253696465626172206669727374223b733a31343a22736964656261725f7365636f6e64223b733a31343a2253696465626172207365636f6e64223b733a31343a2274726970747963685f6669727374223b733a31343a225472697074796368206669727374223b733a31353a2274726970747963685f6d6964646c65223b733a31353a225472697074796368206d6964646c65223b733a31333a2274726970747963685f6c617374223b733a31333a225472697074796368206c617374223b733a31383a22666f6f7465725f6669727374636f6c756d6e223b733a31393a22466f6f74657220666972737420636f6c756d6e223b733a31393a22666f6f7465725f7365636f6e64636f6c756d6e223b733a32303a22466f6f746572207365636f6e6420636f6c756d6e223b733a31383a22666f6f7465725f7468697264636f6c756d6e223b733a31393a22466f6f74657220746869726420636f6c756d6e223b733a31393a22666f6f7465725f666f75727468636f6c756d6e223b733a32303a22466f6f74657220666f7572746820636f6c756d6e223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a2273657474696e6773223b613a313a7b733a32303a2273686f72746375745f6d6f64756c655f6c696e6b223b733a313a2230223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32383a227468656d65732f62617274696b2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d), -('themes/garland/garland.info', 'garland', 'theme', 'themes/engines/phptemplate/phptemplate.engine', 0, 0, -1, 0, 0x613a31383a7b733a343a226e616d65223b733a373a224761726c616e64223b733a31313a226465736372697074696f6e223b733a3131313a2241206d756c74692d636f6c756d6e207468656d652077686963682063616e20626520636f6e6669677572656420746f206d6f6469667920636f6c6f727320616e6420737769746368206265747765656e20666978656420616e6420666c756964207769647468206c61796f7574732e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a323a7b733a333a22616c6c223b613a313a7b733a393a227374796c652e637373223b733a32343a227468656d65732f6761726c616e642f7374796c652e637373223b7d733a353a227072696e74223b613a313a7b733a393a227072696e742e637373223b733a32343a227468656d65732f6761726c616e642f7072696e742e637373223b7d7d733a383a2273657474696e6773223b613a313a7b733a31333a226761726c616e645f7769647468223b733a353a22666c756964223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a373a22726567696f6e73223b613a31323a7b733a31333a22736964656261725f6669727374223b733a31323a224c6566742073696465626172223b733a31343a22736964656261725f7365636f6e64223b733a31333a2252696768742073696465626172223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a363a22686561646572223b733a363a22486561646572223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32393a227468656d65732f6761726c616e642f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d), -('themes/seven/seven.info', 'seven', 'theme', 'themes/engines/phptemplate/phptemplate.engine', 1, 0, -1, 0, 0x613a31383a7b733a343a226e616d65223b733a353a22536576656e223b733a31313a226465736372697074696f6e223b733a36353a22412073696d706c65206f6e652d636f6c756d6e2c207461626c656c6573732c20666c7569642077696474682061646d696e697374726174696f6e207468656d652e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a313a7b733a363a2273637265656e223b613a323a7b733a393a2272657365742e637373223b733a32323a227468656d65732f736576656e2f72657365742e637373223b733a393a227374796c652e637373223b733a32323a227468656d65732f736576656e2f7374796c652e637373223b7d7d733a383a2273657474696e6773223b613a313a7b733a32303a2273686f72746375745f6d6f64756c655f6c696e6b223b733a313a2231223b7d733a373a22726567696f6e73223b613a383a7b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31333a22736964656261725f6669727374223b733a31333a2246697273742073696465626172223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a31343a22726567696f6e735f68696464656e223b613a333a7b693a303b733a31333a22736964656261725f6669727374223b693a313b733a383a22706167655f746f70223b693a323b733a31313a22706167655f626f74746f6d223b7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32373a227468656d65732f736576656e2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d), -('themes/stark/stark.info', 'stark', 'theme', 'themes/engines/phptemplate/phptemplate.engine', 0, 0, -1, 0, 0x613a31373a7b733a343a226e616d65223b733a353a22537461726b223b733a31313a226465736372697074696f6e223b733a3230383a2254686973207468656d652064656d6f6e737472617465732044727570616c27732064656661756c742048544d4c206d61726b757020616e6420435353207374796c65732e20546f206c6561726e20686f7720746f206275696c6420796f7572206f776e207468656d6520616e64206f766572726964652044727570616c27732064656661756c7420636f64652c2073656520746865203c6120687265663d22687474703a2f2f64727570616c2e6f72672f7468656d652d6775696465223e5468656d696e672047756964653c2f613e2e223b733a373a227061636b616765223b733a343a22436f7265223b733a373a2276657273696f6e223b733a343a22372e3233223b733a343a22636f7265223b733a333a22372e78223b733a31313a227374796c65736865657473223b613a313a7b733a333a22616c6c223b613a313a7b733a31303a226c61796f75742e637373223b733a32333a227468656d65732f737461726b2f6c61796f75742e637373223b7d7d733a373a2270726f6a656374223b733a363a2264727570616c223b733a393a22646174657374616d70223b733a31303a2231333735393238323338223b733a363a22656e67696e65223b733a31313a2270687074656d706c617465223b733a373a22726567696f6e73223b613a31323a7b733a31333a22736964656261725f6669727374223b733a31323a224c6566742073696465626172223b733a31343a22736964656261725f7365636f6e64223b733a31333a2252696768742073696465626172223b733a373a22636f6e74656e74223b733a373a22436f6e74656e74223b733a363a22686561646572223b733a363a22486561646572223b733a363a22666f6f746572223b733a363a22466f6f746572223b733a31313a22686967686c696768746564223b733a31313a22486967686c696768746564223b733a343a2268656c70223b733a343a2248656c70223b733a383a22706167655f746f70223b733a383a225061676520746f70223b733a31313a22706167655f626f74746f6d223b733a31313a225061676520626f74746f6d223b733a31343a2264617368626f6172645f6d61696e223b733a31363a2244617368626f61726420286d61696e29223b733a31373a2264617368626f6172645f73696465626172223b733a31393a2244617368626f61726420287369646562617229223b733a31383a2264617368626f6172645f696e616374697665223b733a32303a2244617368626f6172642028696e61637469766529223b7d733a383a226665617475726573223b613a393a7b693a303b733a343a226c6f676f223b693a313b733a373a2266617669636f6e223b693a323b733a343a226e616d65223b693a333b733a363a22736c6f67616e223b693a343b733a31373a226e6f64655f757365725f70696374757265223b693a353b733a32303a22636f6d6d656e745f757365725f70696374757265223b693a363b733a32353a22636f6d6d656e745f757365725f766572696669636174696f6e223b693a373b733a393a226d61696e5f6d656e75223b693a383b733a31343a227365636f6e646172795f6d656e75223b7d733a31303a2273637265656e73686f74223b733a32373a227468656d65732f737461726b2f73637265656e73686f742e706e67223b733a333a22706870223b733a353a22352e322e34223b733a373a2273637269707473223b613a303a7b7d733a31353a226f7665726c61795f726567696f6e73223b613a353a7b693a303b733a31343a2264617368626f6172645f6d61696e223b693a313b733a31373a2264617368626f6172645f73696465626172223b693a323b733a31383a2264617368626f6172645f696e616374697665223b693a333b733a373a22636f6e74656e74223b693a343b733a343a2268656c70223b7d733a31343a22726567696f6e735f68696464656e223b613a323a7b693a303b733a383a22706167655f746f70223b693a313b733a31313a22706167655f626f74746f6d223b7d733a32383a226f7665726c61795f737570706c656d656e74616c5f726567696f6e73223b613a313a7b693a303b733a383a22706167655f746f70223b7d7d); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `taxonomy_index` --- - -CREATE TABLE IF NOT EXISTS `taxonomy_index` ( +-- Dumping data for table `system` +-- + +LOCK TABLES `system` WRITE; +/*!40000 ALTER TABLE `system` DISABLE KEYS */; +INSERT INTO `system` VALUES ('modules/aggregator/aggregator.module','aggregator','module','',0,0,-1,0,'a:14:{s:4:\"name\";s:10:\"Aggregator\";s:11:\"description\";s:57:\"Aggregates syndicated content (RSS, RDF, and Atom feeds).\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:15:\"aggregator.test\";}s:9:\"configure\";s:41:\"admin/config/services/aggregator/settings\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:14:\"aggregator.css\";s:33:\"modules/aggregator/aggregator.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/aggregator/tests/aggregator_test.module','aggregator_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:23:\"Aggregator module tests\";s:11:\"description\";s:46:\"Support module for aggregator related testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/block/block.module','block','module','',1,0,7009,-5,'a:13:{s:4:\"name\";s:5:\"Block\";s:11:\"description\";s:140:\"Controls the visual building blocks a page is constructed with. Blocks are boxes of content rendered into an area, or region, of a web page.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:10:\"block.test\";}s:9:\"configure\";s:21:\"admin/structure/block\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/block/tests/block_test.module','block_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:10:\"Block test\";s:11:\"description\";s:21:\"Provides test blocks.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/blog/blog.module','blog','module','',1,0,0,0,'a:12:{s:4:\"name\";s:4:\"Blog\";s:11:\"description\";s:25:\"Enables multi-user blogs.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:9:\"blog.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/book/book.module','book','module','',0,0,-1,0,'a:14:{s:4:\"name\";s:4:\"Book\";s:11:\"description\";s:66:\"Allows users to create and organize related content in an outline.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:9:\"book.test\";}s:9:\"configure\";s:27:\"admin/content/book/settings\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:8:\"book.css\";s:21:\"modules/book/book.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/color/color.module','color','module','',1,0,7001,0,'a:12:{s:4:\"name\";s:5:\"Color\";s:11:\"description\";s:70:\"Allows administrators to change the color scheme of compatible themes.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:10:\"color.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/comment/comment.module','comment','module','',1,0,7009,0,'a:14:{s:4:\"name\";s:7:\"Comment\";s:11:\"description\";s:57:\"Allows users to comment on and discuss published content.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:4:\"text\";}s:5:\"files\";a:2:{i:0;s:14:\"comment.module\";i:1;s:12:\"comment.test\";}s:9:\"configure\";s:21:\"admin/content/comment\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:11:\"comment.css\";s:27:\"modules/comment/comment.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/contact/contact.module','contact','module','',1,0,7003,0,'a:13:{s:4:\"name\";s:7:\"Contact\";s:11:\"description\";s:61:\"Enables the use of both personal and site-wide contact forms.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:12:\"contact.test\";}s:9:\"configure\";s:23:\"admin/structure/contact\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/contextual/contextual.module','contextual','module','',1,0,0,0,'a:12:{s:4:\"name\";s:16:\"Contextual links\";s:11:\"description\";s:75:\"Provides contextual links to perform actions related to elements on a page.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:15:\"contextual.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/dashboard/dashboard.module','dashboard','module','',1,0,0,0,'a:13:{s:4:\"name\";s:9:\"Dashboard\";s:11:\"description\";s:136:\"Provides a dashboard page in the administrative interface for organizing administrative tasks and tracking information within your site.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:5:\"files\";a:1:{i:0;s:14:\"dashboard.test\";}s:12:\"dependencies\";a:1:{i:0;s:5:\"block\";}s:9:\"configure\";s:25:\"admin/dashboard/customize\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/dblog/dblog.module','dblog','module','',1,1,7003,0,'a:12:{s:4:\"name\";s:16:\"Database logging\";s:11:\"description\";s:47:\"Logs and records system events to the database.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:10:\"dblog.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/field/field.module','field','module','',1,0,7004,0,'a:14:{s:4:\"name\";s:5:\"Field\";s:11:\"description\";s:57:\"Field API to add fields to entities like nodes and users.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:4:{i:0;s:12:\"field.module\";i:1;s:16:\"field.attach.inc\";i:2;s:20:\"field.info.class.inc\";i:3;s:16:\"tests/field.test\";}s:12:\"dependencies\";a:1:{i:0;s:17:\"field_sql_storage\";}s:8:\"required\";b:1;s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:15:\"theme/field.css\";s:29:\"modules/field/theme/field.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/field/modules/field_sql_storage/field_sql_storage.module','field_sql_storage','module','',1,0,7002,0,'a:13:{s:4:\"name\";s:17:\"Field SQL storage\";s:11:\"description\";s:37:\"Stores field data in an SQL database.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:5:\"field\";}s:5:\"files\";a:1:{i:0;s:22:\"field_sql_storage.test\";}s:8:\"required\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/field/modules/list/list.module','list','module','',1,0,7002,0,'a:12:{s:4:\"name\";s:4:\"List\";s:11:\"description\";s:69:\"Defines list field types. Use with Options to create selection lists.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:2:{i:0;s:5:\"field\";i:1;s:7:\"options\";}s:5:\"files\";a:1:{i:0;s:15:\"tests/list.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/field/modules/list/tests/list_test.module','list_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:9:\"List test\";s:11:\"description\";s:41:\"Support module for the List module tests.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/field/modules/number/number.module','number','module','',1,0,0,0,'a:12:{s:4:\"name\";s:6:\"Number\";s:11:\"description\";s:28:\"Defines numeric field types.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:5:\"field\";}s:5:\"files\";a:1:{i:0;s:11:\"number.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/field/modules/options/options.module','options','module','',1,0,0,0,'a:12:{s:4:\"name\";s:7:\"Options\";s:11:\"description\";s:82:\"Defines selection, check box and radio button widgets for text and numeric fields.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:5:\"field\";}s:5:\"files\";a:1:{i:0;s:12:\"options.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/field/modules/text/text.module','text','module','',1,0,7000,0,'a:14:{s:4:\"name\";s:4:\"Text\";s:11:\"description\";s:32:\"Defines simple text field types.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:5:\"field\";}s:5:\"files\";a:1:{i:0;s:9:\"text.test\";}s:8:\"required\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;s:11:\"explanation\";s:99:\"Field type(s) in use - see Field list\";}'),('modules/field/tests/field_test.module','field_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:14:\"Field API Test\";s:11:\"description\";s:39:\"Support module for the Field API tests.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:5:\"files\";a:1:{i:0;s:21:\"field_test.entity.inc\";}s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/field_ui/field_ui.module','field_ui','module','',1,0,0,0,'a:12:{s:4:\"name\";s:8:\"Field UI\";s:11:\"description\";s:33:\"User interface for the Field API.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:5:\"field\";}s:5:\"files\";a:1:{i:0;s:13:\"field_ui.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/file/file.module','file','module','',1,0,0,0,'a:12:{s:4:\"name\";s:4:\"File\";s:11:\"description\";s:26:\"Defines a file field type.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:5:\"field\";}s:5:\"files\";a:1:{i:0;s:15:\"tests/file.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/file/tests/file_module_test.module','file_module_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:9:\"File test\";s:11:\"description\";s:53:\"Provides hooks for testing File module functionality.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/filter/filter.module','filter','module','',1,0,7010,0,'a:14:{s:4:\"name\";s:6:\"Filter\";s:11:\"description\";s:43:\"Filters content in preparation for display.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:11:\"filter.test\";}s:8:\"required\";b:1;s:9:\"configure\";s:28:\"admin/config/content/formats\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/forum/forum.module','forum','module','',0,0,-1,0,'a:14:{s:4:\"name\";s:5:\"Forum\";s:11:\"description\";s:27:\"Provides discussion forums.\";s:12:\"dependencies\";a:2:{i:0;s:8:\"taxonomy\";i:1;s:7:\"comment\";}s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:10:\"forum.test\";}s:9:\"configure\";s:21:\"admin/structure/forum\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:9:\"forum.css\";s:23:\"modules/forum/forum.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/help/help.module','help','module','',1,0,0,0,'a:12:{s:4:\"name\";s:4:\"Help\";s:11:\"description\";s:35:\"Manages the display of online help.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:9:\"help.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/image/image.module','image','module','',1,0,7005,0,'a:15:{s:4:\"name\";s:5:\"Image\";s:11:\"description\";s:34:\"Provides image manipulation tools.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:4:\"file\";}s:5:\"files\";a:1:{i:0;s:10:\"image.test\";}s:9:\"configure\";s:31:\"admin/config/media/image-styles\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;s:8:\"required\";b:1;s:11:\"explanation\";s:99:\"Field type(s) in use - see Field list\";}'),('modules/image/tests/image_module_test.module','image_module_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:10:\"Image test\";s:11:\"description\";s:69:\"Provides hook implementations for testing Image module functionality.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:24:\"image_module_test.module\";}s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/locale/locale.module','locale','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:6:\"Locale\";s:11:\"description\";s:119:\"Adds language handling functionality and enables the translation of the user interface to languages other than English.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:11:\"locale.test\";}s:9:\"configure\";s:30:\"admin/config/regional/language\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/locale/tests/locale_test.module','locale_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:11:\"Locale Test\";s:11:\"description\";s:42:\"Support module for the locale layer tests.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/menu/menu.module','menu','module','',1,0,7003,0,'a:13:{s:4:\"name\";s:4:\"Menu\";s:11:\"description\";s:60:\"Allows administrators to customize the site navigation menu.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:9:\"menu.test\";}s:9:\"configure\";s:20:\"admin/structure/menu\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/node/node.module','node','module','',1,0,7016,0,'a:15:{s:4:\"name\";s:4:\"Node\";s:11:\"description\";s:66:\"Allows content to be submitted to the site and displayed on pages.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:2:{i:0;s:11:\"node.module\";i:1;s:9:\"node.test\";}s:8:\"required\";b:1;s:9:\"configure\";s:21:\"admin/structure/types\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:8:\"node.css\";s:21:\"modules/node/node.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/node/tests/node_access_test.module','node_access_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:24:\"Node module access tests\";s:11:\"description\";s:43:\"Support module for node permission testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/node/tests/node_test.module','node_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:17:\"Node module tests\";s:11:\"description\";s:40:\"Support module for node related testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/node/tests/node_test_exception.module','node_test_exception','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:27:\"Node module exception tests\";s:11:\"description\";s:50:\"Support module for node related exception testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/openid/openid.module','openid','module','',0,0,-1,0,'a:12:{s:4:\"name\";s:6:\"OpenID\";s:11:\"description\";s:48:\"Allows users to log into your site using OpenID.\";s:7:\"version\";s:4:\"7.59\";s:7:\"package\";s:4:\"Core\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:11:\"openid.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/openid/tests/openid_test.module','openid_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:21:\"OpenID dummy provider\";s:11:\"description\";s:33:\"OpenID provider used for testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:6:\"openid\";}s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/overlay/overlay.module','overlay','module','',1,1,0,0,'a:12:{s:4:\"name\";s:7:\"Overlay\";s:11:\"description\";s:59:\"Displays the Drupal administration interface in an overlay.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/path/path.module','path','module','',1,0,0,0,'a:13:{s:4:\"name\";s:4:\"Path\";s:11:\"description\";s:28:\"Allows users to rename URLs.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:9:\"path.test\";}s:9:\"configure\";s:24:\"admin/config/search/path\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/php/php.module','php','module','',1,0,0,0,'a:12:{s:4:\"name\";s:10:\"PHP filter\";s:11:\"description\";s:50:\"Allows embedded PHP code/snippets to be evaluated.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:8:\"php.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/poll/poll.module','poll','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:4:\"Poll\";s:11:\"description\";s:95:\"Allows your site to capture votes on different topics in the form of multiple choice questions.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:9:\"poll.test\";}s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:8:\"poll.css\";s:21:\"modules/poll/poll.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/profile/profile.module','profile','module','',0,0,-1,0,'a:14:{s:4:\"name\";s:7:\"Profile\";s:11:\"description\";s:36:\"Supports configurable user profiles.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:12:\"profile.test\";}s:9:\"configure\";s:27:\"admin/config/people/profile\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/rdf/rdf.module','rdf','module','',1,0,0,0,'a:12:{s:4:\"name\";s:3:\"RDF\";s:11:\"description\";s:148:\"Enriches your content with metadata to let other applications (e.g. search engines, aggregators) better understand its relationships and attributes.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:8:\"rdf.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/rdf/tests/rdf_test.module','rdf_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:16:\"RDF module tests\";s:11:\"description\";s:38:\"Support module for RDF module testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:12:\"dependencies\";a:1:{i:0;s:4:\"blog\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/search/search.module','search','module','',1,0,7000,0,'a:14:{s:4:\"name\";s:6:\"Search\";s:11:\"description\";s:36:\"Enables site-wide keyword searching.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:2:{i:0;s:19:\"search.extender.inc\";i:1;s:11:\"search.test\";}s:9:\"configure\";s:28:\"admin/config/search/settings\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:10:\"search.css\";s:25:\"modules/search/search.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/search/tests/search_embedded_form.module','search_embedded_form','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:20:\"Search embedded form\";s:11:\"description\";s:59:\"Support module for search module testing of embedded forms.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/search/tests/search_extra_type.module','search_extra_type','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:16:\"Test search type\";s:11:\"description\";s:41:\"Support module for search module testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/search/tests/search_node_tags.module','search_node_tags','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:21:\"Test search node tags\";s:11:\"description\";s:44:\"Support module for Node search tags testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/shortcut/shortcut.module','shortcut','module','',1,0,0,0,'a:13:{s:4:\"name\";s:8:\"Shortcut\";s:11:\"description\";s:60:\"Allows users to manage customizable lists of shortcut links.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:13:\"shortcut.test\";}s:9:\"configure\";s:36:\"admin/config/user-interface/shortcut\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/simpletest/simpletest.module','simpletest','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:7:\"Testing\";s:11:\"description\";s:53:\"Provides a framework for unit and functional testing.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:50:{i:0;s:15:\"simpletest.test\";i:1;s:24:\"drupal_web_test_case.php\";i:2;s:18:\"tests/actions.test\";i:3;s:15:\"tests/ajax.test\";i:4;s:16:\"tests/batch.test\";i:5;s:15:\"tests/boot.test\";i:6;s:20:\"tests/bootstrap.test\";i:7;s:16:\"tests/cache.test\";i:8;s:17:\"tests/common.test\";i:9;s:24:\"tests/database_test.test\";i:10;s:22:\"tests/entity_crud.test\";i:11;s:32:\"tests/entity_crud_hook_test.test\";i:12;s:23:\"tests/entity_query.test\";i:13;s:16:\"tests/error.test\";i:14;s:15:\"tests/file.test\";i:15;s:23:\"tests/filetransfer.test\";i:16;s:15:\"tests/form.test\";i:17;s:16:\"tests/graph.test\";i:18;s:16:\"tests/image.test\";i:19;s:15:\"tests/lock.test\";i:20;s:15:\"tests/mail.test\";i:21;s:15:\"tests/menu.test\";i:22;s:17:\"tests/module.test\";i:23;s:16:\"tests/pager.test\";i:24;s:19:\"tests/password.test\";i:25;s:15:\"tests/path.test\";i:26;s:19:\"tests/registry.test\";i:27;s:17:\"tests/schema.test\";i:28;s:18:\"tests/session.test\";i:29;s:20:\"tests/tablesort.test\";i:30;s:16:\"tests/theme.test\";i:31;s:18:\"tests/unicode.test\";i:32;s:17:\"tests/update.test\";i:33;s:17:\"tests/xmlrpc.test\";i:34;s:26:\"tests/upgrade/upgrade.test\";i:35;s:34:\"tests/upgrade/upgrade.comment.test\";i:36;s:33:\"tests/upgrade/upgrade.filter.test\";i:37;s:32:\"tests/upgrade/upgrade.forum.test\";i:38;s:33:\"tests/upgrade/upgrade.locale.test\";i:39;s:31:\"tests/upgrade/upgrade.menu.test\";i:40;s:31:\"tests/upgrade/upgrade.node.test\";i:41;s:35:\"tests/upgrade/upgrade.taxonomy.test\";i:42;s:34:\"tests/upgrade/upgrade.trigger.test\";i:43;s:39:\"tests/upgrade/upgrade.translatable.test\";i:44;s:33:\"tests/upgrade/upgrade.upload.test\";i:45;s:31:\"tests/upgrade/upgrade.user.test\";i:46;s:36:\"tests/upgrade/update.aggregator.test\";i:47;s:33:\"tests/upgrade/update.trigger.test\";i:48;s:31:\"tests/upgrade/update.field.test\";i:49;s:30:\"tests/upgrade/update.user.test\";}s:9:\"configure\";s:41:\"admin/config/development/testing/settings\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/actions_loop_test.module','actions_loop_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:17:\"Actions loop test\";s:11:\"description\";s:39:\"Support module for action loop testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/ajax_forms_test.module','ajax_forms_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:26:\"AJAX form test mock module\";s:11:\"description\";s:25:\"Test for AJAX form calls.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/ajax_test.module','ajax_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:9:\"AJAX Test\";s:11:\"description\";s:40:\"Support module for AJAX framework tests.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/batch_test.module','batch_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:14:\"Batch API test\";s:11:\"description\";s:35:\"Support module for Batch API tests.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/boot_test_1.module','boot_test_1','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:21:\"Early bootstrap tests\";s:11:\"description\";s:39:\"A support module for hook_boot testing.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/boot_test_2.module','boot_test_2','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:21:\"Early bootstrap tests\";s:11:\"description\";s:44:\"A support module for hook_boot hook testing.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/common_test.module','common_test','module','',0,0,-1,0,'a:14:{s:4:\"name\";s:11:\"Common Test\";s:11:\"description\";s:32:\"Support module for Common tests.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:1:{s:15:\"common_test.css\";s:40:\"modules/simpletest/tests/common_test.css\";}s:5:\"print\";a:1:{s:21:\"common_test.print.css\";s:46:\"modules/simpletest/tests/common_test.print.css\";}}s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/common_test_cron_helper.module','common_test_cron_helper','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:23:\"Common Test Cron Helper\";s:11:\"description\";s:56:\"Helper module for CronRunTestCase::testCronExceptions().\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/database_test.module','database_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:13:\"Database Test\";s:11:\"description\";s:40:\"Support module for Database layer tests.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.module','drupal_autoload_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:25:\"Drupal code registry test\";s:11:\"description\";s:45:\"Support module for testing the code registry.\";s:5:\"files\";a:2:{i:0;s:34:\"drupal_autoload_test_interface.inc\";i:1;s:30:\"drupal_autoload_test_class.inc\";}s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.module','drupal_system_listing_compatible_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:37:\"Drupal system listing compatible test\";s:11:\"description\";s:62:\"Support module for testing the drupal_system_listing function.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.module','drupal_system_listing_incompatible_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:39:\"Drupal system listing incompatible test\";s:11:\"description\";s:62:\"Support module for testing the drupal_system_listing function.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/entity_cache_test.module','entity_cache_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:17:\"Entity cache test\";s:11:\"description\";s:40:\"Support module for testing entity cache.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:28:\"entity_cache_test_dependency\";}s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/entity_cache_test_dependency.module','entity_cache_test_dependency','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:28:\"Entity cache test dependency\";s:11:\"description\";s:51:\"Support dependency module for testing entity cache.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/entity_crud_hook_test.module','entity_crud_hook_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:22:\"Entity CRUD Hooks Test\";s:11:\"description\";s:35:\"Support module for CRUD hook tests.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/entity_query_access_test.module','entity_query_access_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:24:\"Entity query access test\";s:11:\"description\";s:49:\"Support module for checking entity query results.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/error_test.module','error_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:10:\"Error test\";s:11:\"description\";s:47:\"Support module for error and exception testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/file_test.module','file_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:9:\"File test\";s:11:\"description\";s:39:\"Support module for file handling tests.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:16:\"file_test.module\";}s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/filter_test.module','filter_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:18:\"Filter test module\";s:11:\"description\";s:33:\"Tests filter hooks and functions.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/form_test.module','form_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:12:\"FormAPI Test\";s:11:\"description\";s:34:\"Support module for Form API tests.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/image_test.module','image_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:10:\"Image test\";s:11:\"description\";s:39:\"Support module for image toolkit tests.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/menu_test.module','menu_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:15:\"Hook menu tests\";s:11:\"description\";s:37:\"Support module for menu hook testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/module_test.module','module_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:11:\"Module test\";s:11:\"description\";s:41:\"Support module for module system testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/path_test.module','path_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:15:\"Hook path tests\";s:11:\"description\";s:37:\"Support module for path hook testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/psr_0_test/psr_0_test.module','psr_0_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:16:\"PSR-0 Test cases\";s:11:\"description\";s:44:\"Test classes to be discovered by simpletest.\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/psr_4_test/psr_4_test.module','psr_4_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:16:\"PSR-4 Test cases\";s:11:\"description\";s:44:\"Test classes to be discovered by simpletest.\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/requirements1_test.module','requirements1_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:19:\"Requirements 1 Test\";s:11:\"description\";s:80:\"Tests that a module is not installed when it fails hook_requirements(\'install\').\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/requirements2_test.module','requirements2_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:19:\"Requirements 2 Test\";s:11:\"description\";s:98:\"Tests that a module is not installed when the one it depends on fails hook_requirements(\'install).\";s:12:\"dependencies\";a:2:{i:0;s:18:\"requirements1_test\";i:1;s:7:\"comment\";}s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/session_test.module','session_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:12:\"Session test\";s:11:\"description\";s:40:\"Support module for session data testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/system_dependencies_test.module','system_dependencies_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:22:\"System dependency test\";s:11:\"description\";s:47:\"Support module for testing system dependencies.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:12:\"dependencies\";a:1:{i:0;s:19:\"_missing_dependency\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module','system_incompatible_core_version_dependencies_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:50:\"System incompatible core version dependencies test\";s:11:\"description\";s:47:\"Support module for testing system dependencies.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:12:\"dependencies\";a:1:{i:0;s:37:\"system_incompatible_core_version_test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/system_incompatible_core_version_test.module','system_incompatible_core_version_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:37:\"System incompatible core version test\";s:11:\"description\";s:47:\"Support module for testing system dependencies.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"5.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module','system_incompatible_module_version_dependencies_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:52:\"System incompatible module version dependencies test\";s:11:\"description\";s:47:\"Support module for testing system dependencies.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:12:\"dependencies\";a:1:{i:0;s:46:\"system_incompatible_module_version_test (>2.0)\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/system_incompatible_module_version_test.module','system_incompatible_module_version_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:39:\"System incompatible module version test\";s:11:\"description\";s:47:\"Support module for testing system dependencies.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/system_project_namespace_test.module','system_project_namespace_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:29:\"System project namespace test\";s:11:\"description\";s:58:\"Support module for testing project namespace dependencies.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:12:\"dependencies\";a:1:{i:0;s:13:\"drupal:filter\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/system_test.module','system_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:11:\"System test\";s:11:\"description\";s:34:\"Support module for system testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:18:\"system_test.module\";}s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/taxonomy_test.module','taxonomy_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:20:\"Taxonomy test module\";s:11:\"description\";s:45:\"\"Tests functions and hooks not used in core\".\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:12:\"dependencies\";a:1:{i:0;s:8:\"taxonomy\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/theme_test.module','theme_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:10:\"Theme test\";s:11:\"description\";s:40:\"Support module for theme system testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/update_script_test.module','update_script_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:18:\"Update script test\";s:11:\"description\";s:41:\"Support module for update script testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/update_test_1.module','update_test_1','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:11:\"Update test\";s:11:\"description\";s:34:\"Support module for update testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/update_test_2.module','update_test_2','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:11:\"Update test\";s:11:\"description\";s:34:\"Support module for update testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/update_test_3.module','update_test_3','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:11:\"Update test\";s:11:\"description\";s:34:\"Support module for update testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/url_alter_test.module','url_alter_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:15:\"Url_alter tests\";s:11:\"description\";s:45:\"A support modules for url_alter hook testing.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/simpletest/tests/xmlrpc_test.module','xmlrpc_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:12:\"XML-RPC Test\";s:11:\"description\";s:75:\"Support module for XML-RPC tests according to the validator1 specification.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/statistics/statistics.module','statistics','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:10:\"Statistics\";s:11:\"description\";s:37:\"Logs access statistics for your site.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:15:\"statistics.test\";}s:9:\"configure\";s:30:\"admin/config/system/statistics\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/syslog/syslog.module','syslog','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:6:\"Syslog\";s:11:\"description\";s:41:\"Logs and records system events to syslog.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:11:\"syslog.test\";}s:9:\"configure\";s:32:\"admin/config/development/logging\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/system/system.module','system','module','',1,1,7081,0,'a:14:{s:4:\"name\";s:6:\"System\";s:11:\"description\";s:54:\"Handles general site configuration for administrators.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:6:{i:0;s:19:\"system.archiver.inc\";i:1;s:15:\"system.mail.inc\";i:2;s:16:\"system.queue.inc\";i:3;s:14:\"system.tar.inc\";i:4;s:18:\"system.updater.inc\";i:5;s:11:\"system.test\";}s:8:\"required\";b:1;s:9:\"configure\";s:19:\"admin/config/system\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/system/tests/cron_queue_test.module','cron_queue_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:15:\"Cron Queue test\";s:11:\"description\";s:41:\"Support module for the cron queue runner.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/system/tests/system_cron_test.module','system_cron_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:16:\"System Cron Test\";s:11:\"description\";s:45:\"Support module for testing the system_cron().\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/taxonomy/taxonomy.module','taxonomy','module','',1,0,7011,0,'a:15:{s:4:\"name\";s:8:\"Taxonomy\";s:11:\"description\";s:38:\"Enables the categorization of content.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:7:\"options\";}s:5:\"files\";a:2:{i:0;s:15:\"taxonomy.module\";i:1;s:13:\"taxonomy.test\";}s:9:\"configure\";s:24:\"admin/structure/taxonomy\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;s:8:\"required\";b:1;s:11:\"explanation\";s:99:\"Field type(s) in use - see Field list\";}'),('modules/toolbar/toolbar.module','toolbar','module','',1,0,0,0,'a:12:{s:4:\"name\";s:7:\"Toolbar\";s:11:\"description\";s:99:\"Provides a toolbar that shows the top-level administration menu items and links from other modules.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/tracker/tracker.module','tracker','module','',0,0,-1,0,'a:12:{s:4:\"name\";s:7:\"Tracker\";s:11:\"description\";s:45:\"Enables tracking of recent content for users.\";s:12:\"dependencies\";a:1:{i:0;s:7:\"comment\";}s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:12:\"tracker.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/translation/tests/translation_test.module','translation_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:24:\"Content Translation Test\";s:11:\"description\";s:49:\"Support module for the content translation tests.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/translation/translation.module','translation','module','',0,0,-1,0,'a:12:{s:4:\"name\";s:19:\"Content translation\";s:11:\"description\";s:57:\"Allows content to be translated into different languages.\";s:12:\"dependencies\";a:1:{i:0;s:6:\"locale\";}s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:16:\"translation.test\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/trigger/tests/trigger_test.module','trigger_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:12:\"Trigger Test\";s:11:\"description\";s:33:\"Support module for Trigger tests.\";s:7:\"package\";s:7:\"Testing\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"version\";s:4:\"7.59\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/trigger/trigger.module','trigger','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:7:\"Trigger\";s:11:\"description\";s:90:\"Enables actions to be fired on certain system events, such as when new content is created.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:12:\"trigger.test\";}s:9:\"configure\";s:23:\"admin/structure/trigger\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/update/tests/aaa_update_test.module','aaa_update_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:15:\"AAA Update test\";s:11:\"description\";s:41:\"Support module for update module testing.\";s:7:\"package\";s:7:\"Testing\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"version\";s:4:\"7.59\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/update/tests/bbb_update_test.module','bbb_update_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:15:\"BBB Update test\";s:11:\"description\";s:41:\"Support module for update module testing.\";s:7:\"package\";s:7:\"Testing\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"version\";s:4:\"7.59\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/update/tests/ccc_update_test.module','ccc_update_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:15:\"CCC Update test\";s:11:\"description\";s:41:\"Support module for update module testing.\";s:7:\"package\";s:7:\"Testing\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"version\";s:4:\"7.59\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/update/tests/update_test.module','update_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:11:\"Update test\";s:11:\"description\";s:41:\"Support module for update module testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/update/update.module','update','module','',1,0,7001,0,'a:13:{s:4:\"name\";s:14:\"Update manager\";s:11:\"description\";s:104:\"Checks for available updates, and can securely install or update modules and themes via a web interface.\";s:7:\"version\";s:4:\"7.59\";s:7:\"package\";s:4:\"Core\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:1:{i:0;s:11:\"update.test\";}s:9:\"configure\";s:30:\"admin/reports/updates/settings\";s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('modules/user/tests/user_form_test.module','user_form_test','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:22:\"User module form tests\";s:11:\"description\";s:37:\"Support module for user form testing.\";s:7:\"package\";s:7:\"Testing\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:6:\"hidden\";b:1;s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('modules/user/user.module','user','module','',1,0,7019,0,'a:15:{s:4:\"name\";s:4:\"User\";s:11:\"description\";s:47:\"Manages the user registration and login system.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:5:\"files\";a:2:{i:0;s:11:\"user.module\";i:1;s:9:\"user.test\";}s:8:\"required\";b:1;s:9:\"configure\";s:19:\"admin/config/people\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:8:\"user.css\";s:21:\"modules/user/user.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:12:\"dependencies\";a:0:{}s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('profiles/standard/standard.profile','standard','module','',1,0,0,1000,'a:15:{s:4:\"name\";s:8:\"Standard\";s:11:\"description\";s:51:\"Install with commonly used features pre-configured.\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:21:{i:0;s:5:\"block\";i:1;s:5:\"color\";i:2;s:7:\"comment\";i:3;s:10:\"contextual\";i:4;s:9:\"dashboard\";i:5;s:4:\"help\";i:6;s:5:\"image\";i:7;s:4:\"list\";i:8;s:4:\"menu\";i:9;s:6:\"number\";i:10;s:7:\"options\";i:11;s:4:\"path\";i:12;s:8:\"taxonomy\";i:13;s:5:\"dblog\";i:14;s:6:\"search\";i:15;s:8:\"shortcut\";i:16;s:7:\"toolbar\";i:17;s:7:\"overlay\";i:18;s:8:\"field_ui\";i:19;s:4:\"file\";i:20;s:3:\"rdf\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:5:\"mtime\";i:1524673284;s:7:\"package\";s:5:\"Other\";s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;s:6:\"hidden\";b:1;s:8:\"required\";b:1;s:17:\"distribution_name\";s:6:\"Drupal\";}'),('sites/all/modules/libraries/libraries.module','libraries','module','',1,0,7201,0,'a:12:{s:4:\"name\";s:9:\"Libraries\";s:11:\"description\";s:64:\"Allows version-dependent and shared usage of external libraries.\";s:4:\"core\";s:3:\"7.x\";s:12:\"dependencies\";a:1:{i:0;s:15:\"system (>=7.11)\";}s:5:\"files\";a:4:{i:0;s:32:\"tests/LibrariesAdminWebTest.test\";i:1;s:31:\"tests/LibrariesLoadWebTest.test\";i:2;s:28:\"tests/LibrariesUnitTest.test\";i:3;s:31:\"tests/LibrariesWebTestBase.test\";}s:7:\"version\";s:7:\"7.x-2.3\";s:7:\"project\";s:9:\"libraries\";s:9:\"datestamp\";s:10:\"1463077450\";s:5:\"mtime\";i:1463077450;s:7:\"package\";s:5:\"Other\";s:3:\"php\";s:5:\"5.2.4\";s:9:\"bootstrap\";i:0;}'),('sites/all/modules/libraries/tests/modules/libraries_test_module/libraries_test_module.module','libraries_test_module','module','',0,0,-1,0,'a:13:{s:4:\"name\";s:21:\"Libraries test module\";s:11:\"description\";s:36:\"Tests library detection and loading.\";s:4:\"core\";s:3:\"7.x\";s:7:\"package\";s:7:\"Testing\";s:12:\"dependencies\";a:1:{i:0;s:9:\"libraries\";}s:6:\"hidden\";b:1;s:7:\"version\";s:7:\"7.x-2.3\";s:7:\"project\";s:9:\"libraries\";s:9:\"datestamp\";s:10:\"1463077450\";s:5:\"mtime\";i:1463077450;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('sites/all/modules/superfish/superfish.module','superfish','module','',1,0,7100,0,'a:13:{s:4:\"name\";s:9:\"Superfish\";s:11:\"description\";s:46:\"jQuery Superfish plugin for your Drupal menus.\";s:7:\"package\";s:14:\"User interface\";s:12:\"dependencies\";a:1:{i:0;s:4:\"menu\";}s:9:\"configure\";s:37:\"admin/config/user-interface/superfish\";s:4:\"core\";s:3:\"7.x\";s:7:\"version\";s:7:\"7.x-1.9\";s:7:\"project\";s:9:\"superfish\";s:9:\"datestamp\";s:10:\"1367054112\";s:5:\"mtime\";i:1530783104;s:3:\"php\";s:5:\"5.2.4\";s:5:\"files\";a:0:{}s:9:\"bootstrap\";i:0;}'),('sites/all/themes/simplecorp/simplecorp.info','simplecorp','theme','themes/engines/phptemplate/phptemplate.engine',1,0,-1,0,'a:16:{s:4:\"name\";s:10:\"SimpleCorp\";s:11:\"description\";s:352:\"A flexible responsive theme with many regions supported by More than (just) Themes. If you like this theme, we encourage you to try also our other Premium and Free Drupal themes.\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:4:{s:3:\"all\";a:4:{s:16:\"css/main-css.css\";s:44:\"sites/all/themes/simplecorp/css/main-css.css\";s:17:\"css/normalize.css\";s:45:\"sites/all/themes/simplecorp/css/normalize.css\";s:26:\"css/plugins/flexslider.css\";s:54:\"sites/all/themes/simplecorp/css/plugins/flexslider.css\";s:13:\"css/local.css\";s:41:\"sites/all/themes/simplecorp/css/local.css\";}s:49:\"all and (min-width: 768px) and (max-width: 959px)\";a:1:{s:11:\"css/768.css\";s:39:\"sites/all/themes/simplecorp/css/768.css\";}s:49:\"all and (min-width: 480px) and (max-width: 767px)\";a:1:{s:11:\"css/480.css\";s:39:\"sites/all/themes/simplecorp/css/480.css\";}s:26:\"all and (max-width: 479px)\";a:1:{s:11:\"css/320.css\";s:39:\"sites/all/themes/simplecorp/css/320.css\";}}s:7:\"regions\";a:20:{s:6:\"header\";s:6:\"Header\";s:10:\"navigation\";s:10:\"Navigation\";s:11:\"top_content\";s:11:\"Top Content\";s:6:\"banner\";s:6:\"Banner\";s:11:\"highlighted\";s:11:\"Highlighted\";s:7:\"content\";s:7:\"Content\";s:13:\"sidebar_first\";s:13:\"Sidebar First\";s:14:\"sidebar_second\";s:14:\"Sidebar Second\";s:14:\"bottom_content\";s:14:\"Bottom Content\";s:12:\"footer_first\";s:12:\"Footer First\";s:13:\"footer_second\";s:13:\"Footer Second\";s:12:\"footer_third\";s:12:\"Footer Third\";s:13:\"footer_fourth\";s:13:\"Footer Fourth\";s:6:\"footer\";s:6:\"Footer\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"settings\";a:34:{s:18:\"breadcrumb_display\";s:1:\"1\";s:20:\"breadcrumb_separator\";s:1:\"/\";s:19:\"main_menu_custom_js\";s:1:\"1\";s:17:\"header_tooltip_js\";s:1:\"1\";s:20:\"social_icons_display\";s:1:\"1\";s:19:\"highlighted_display\";s:1:\"1\";s:16:\"carousel_display\";s:1:\"1\";s:11:\"carousel_js\";s:1:\"1\";s:20:\"carousel_effect_time\";s:3:\"0.6\";s:15:\"carousel_effect\";s:11:\"easeOutCirc\";s:17:\"slideshow_display\";s:1:\"1\";s:12:\"slideshow_js\";s:1:\"1\";s:16:\"slideshow_effect\";s:5:\"slide\";s:21:\"slideshow_effect_time\";s:1:\"5\";s:16:\"slideshow_random\";s:1:\"0\";s:18:\"slideshow_controls\";s:1:\"1\";s:15:\"slideshow_pause\";s:1:\"1\";s:15:\"slideshow_touch\";s:1:\"1\";s:15:\"responsive_meta\";s:1:\"1\";s:18:\"responsive_respond\";s:1:\"0\";s:12:\"button_color\";s:10:\"steel_blue\";s:11:\"theme_color\";s:7:\"default\";s:14:\"columns_enable\";s:1:\"0\";s:12:\"lists_enable\";s:1:\"0\";s:12:\"boxes_enable\";s:1:\"0\";s:12:\"quicksand_js\";s:1:\"0\";s:14:\"prettyphoto_js\";s:1:\"1\";s:17:\"prettyphoto_theme\";s:10:\"pp_default\";s:24:\"prettyphoto_social_tools\";s:1:\"1\";s:17:\"jtweetanywhere_js\";s:1:\"0\";s:17:\"jtweetanywhere_id\";s:14:\"morethanthemes\";s:21:\"responsive_menu_state\";s:1:\"1\";s:27:\"responsive_menu_switchwidth\";s:3:\"960\";s:29:\"responsive_menu_topoptiontext\";s:13:\"Select a page\";}s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:42:\"sites/all/themes/simplecorp/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1530783104;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}'),('themes/bartik/bartik.info','bartik','theme','themes/engines/phptemplate/phptemplate.engine',1,0,-1,0,'a:19:{s:4:\"name\";s:6:\"Bartik\";s:11:\"description\";s:48:\"A flexible, recolorable theme with many regions.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:3:{s:14:\"css/layout.css\";s:28:\"themes/bartik/css/layout.css\";s:13:\"css/style.css\";s:27:\"themes/bartik/css/style.css\";s:14:\"css/colors.css\";s:28:\"themes/bartik/css/colors.css\";}s:5:\"print\";a:1:{s:13:\"css/print.css\";s:27:\"themes/bartik/css/print.css\";}}s:7:\"regions\";a:20:{s:6:\"header\";s:6:\"Header\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:11:\"highlighted\";s:11:\"Highlighted\";s:8:\"featured\";s:8:\"Featured\";s:7:\"content\";s:7:\"Content\";s:13:\"sidebar_first\";s:13:\"Sidebar first\";s:14:\"sidebar_second\";s:14:\"Sidebar second\";s:14:\"triptych_first\";s:14:\"Triptych first\";s:15:\"triptych_middle\";s:15:\"Triptych middle\";s:13:\"triptych_last\";s:13:\"Triptych last\";s:18:\"footer_firstcolumn\";s:19:\"Footer first column\";s:19:\"footer_secondcolumn\";s:20:\"Footer second column\";s:18:\"footer_thirdcolumn\";s:19:\"Footer third column\";s:19:\"footer_fourthcolumn\";s:20:\"Footer fourth column\";s:6:\"footer\";s:6:\"Footer\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"settings\";a:1:{s:20:\"shortcut_module_link\";s:1:\"0\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:28:\"themes/bartik/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}'),('themes/garland/garland.info','garland','theme','themes/engines/phptemplate/phptemplate.engine',0,0,-1,0,'a:19:{s:4:\"name\";s:7:\"Garland\";s:11:\"description\";s:111:\"A multi-column theme which can be configured to modify colors and switch between fixed and fluid width layouts.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:2:{s:3:\"all\";a:1:{s:9:\"style.css\";s:24:\"themes/garland/style.css\";}s:5:\"print\";a:1:{s:9:\"print.css\";s:24:\"themes/garland/print.css\";}}s:8:\"settings\";a:1:{s:13:\"garland_width\";s:5:\"fluid\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:7:\"regions\";a:12:{s:13:\"sidebar_first\";s:12:\"Left sidebar\";s:14:\"sidebar_second\";s:13:\"Right sidebar\";s:7:\"content\";s:7:\"Content\";s:6:\"header\";s:6:\"Header\";s:6:\"footer\";s:6:\"Footer\";s:11:\"highlighted\";s:11:\"Highlighted\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:29:\"themes/garland/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}'),('themes/seven/seven.info','seven','theme','themes/engines/phptemplate/phptemplate.engine',1,0,-1,0,'a:19:{s:4:\"name\";s:5:\"Seven\";s:11:\"description\";s:65:\"A simple one-column, tableless, fluid width administration theme.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:1:{s:6:\"screen\";a:2:{s:9:\"reset.css\";s:22:\"themes/seven/reset.css\";s:9:\"style.css\";s:22:\"themes/seven/style.css\";}}s:8:\"settings\";a:1:{s:20:\"shortcut_module_link\";s:1:\"1\";}s:7:\"regions\";a:8:{s:7:\"content\";s:7:\"Content\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:13:\"sidebar_first\";s:13:\"First sidebar\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:14:\"regions_hidden\";a:3:{i:0;s:13:\"sidebar_first\";i:1;s:8:\"page_top\";i:2;s:11:\"page_bottom\";}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:27:\"themes/seven/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}'),('themes/stark/stark.info','stark','theme','themes/engines/phptemplate/phptemplate.engine',0,0,-1,0,'a:18:{s:4:\"name\";s:5:\"Stark\";s:11:\"description\";s:208:\"This theme demonstrates Drupal\'s default HTML markup and CSS styles. To learn how to build your own theme and override Drupal\'s default code, see the Theming Guide.\";s:7:\"package\";s:4:\"Core\";s:7:\"version\";s:4:\"7.59\";s:4:\"core\";s:3:\"7.x\";s:11:\"stylesheets\";a:1:{s:3:\"all\";a:1:{s:10:\"layout.css\";s:23:\"themes/stark/layout.css\";}}s:7:\"project\";s:6:\"drupal\";s:9:\"datestamp\";s:10:\"1524673284\";s:6:\"engine\";s:11:\"phptemplate\";s:7:\"regions\";a:12:{s:13:\"sidebar_first\";s:12:\"Left sidebar\";s:14:\"sidebar_second\";s:13:\"Right sidebar\";s:7:\"content\";s:7:\"Content\";s:6:\"header\";s:6:\"Header\";s:6:\"footer\";s:6:\"Footer\";s:11:\"highlighted\";s:11:\"Highlighted\";s:4:\"help\";s:4:\"Help\";s:8:\"page_top\";s:8:\"Page top\";s:11:\"page_bottom\";s:11:\"Page bottom\";s:14:\"dashboard_main\";s:16:\"Dashboard (main)\";s:17:\"dashboard_sidebar\";s:19:\"Dashboard (sidebar)\";s:18:\"dashboard_inactive\";s:20:\"Dashboard (inactive)\";}s:8:\"features\";a:9:{i:0;s:4:\"logo\";i:1;s:7:\"favicon\";i:2;s:4:\"name\";i:3;s:6:\"slogan\";i:4;s:17:\"node_user_picture\";i:5;s:20:\"comment_user_picture\";i:6;s:25:\"comment_user_verification\";i:7;s:9:\"main_menu\";i:8;s:14:\"secondary_menu\";}s:10:\"screenshot\";s:27:\"themes/stark/screenshot.png\";s:3:\"php\";s:5:\"5.2.4\";s:7:\"scripts\";a:0:{}s:5:\"mtime\";i:1524673284;s:15:\"overlay_regions\";a:5:{i:0;s:14:\"dashboard_main\";i:1;s:17:\"dashboard_sidebar\";i:2;s:18:\"dashboard_inactive\";i:3;s:7:\"content\";i:4;s:4:\"help\";}s:14:\"regions_hidden\";a:2:{i:0;s:8:\"page_top\";i:1;s:11:\"page_bottom\";}s:28:\"overlay_supplemental_regions\";a:1:{i:0;s:8:\"page_top\";}}'); +/*!40000 ALTER TABLE `system` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `taxonomy_index` +-- + +DROP TABLE IF EXISTS `taxonomy_index`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_index` ( `nid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The node.nid this record tracks.', `tid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The term ID.', `sticky` tinyint(4) DEFAULT '0' COMMENT 'Boolean indicating whether the node is sticky.', @@ -5079,27 +2047,26 @@ CREATE TABLE IF NOT EXISTS `taxonomy_index` ( KEY `term_node` (`tid`,`sticky`,`created`), KEY `nid` (`nid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Maintains denormalized information about node/term...'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `taxonomy_index` +-- Dumping data for table `taxonomy_index` -- -INSERT INTO `taxonomy_index` (`nid`, `tid`, `sticky`, `created`) VALUES -(7, 4, 0, 1363626320), -(6, 5, 0, 1363626260), -(5, 6, 0, 1363626200), -(4, 4, 0, 1363626131), -(3, 6, 0, 1363543126), -(2, 4, 0, 1362263185), -(20, 5, 0, 1364418052); - --- -------------------------------------------------------- +LOCK TABLES `taxonomy_index` WRITE; +/*!40000 ALTER TABLE `taxonomy_index` DISABLE KEYS */; +INSERT INTO `taxonomy_index` VALUES (7,4,0,1363626320),(6,5,0,1363626260),(5,6,0,1363626200),(4,4,0,1363626131),(3,6,0,1363543126),(2,4,0,1362263185),(20,5,0,1364418052); +/*!40000 ALTER TABLE `taxonomy_index` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `taxonomy_term_data` +-- Table structure for table `taxonomy_term_data` -- -CREATE TABLE IF NOT EXISTS `taxonomy_term_data` ( +DROP TABLE IF EXISTS `taxonomy_term_data`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_term_data` ( `tid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique term ID.', `vid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The taxonomy_vocabulary.vid of the vocabulary to which the term is assigned.', `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'The term name.', @@ -5110,52 +2077,52 @@ CREATE TABLE IF NOT EXISTS `taxonomy_term_data` ( KEY `taxonomy_tree` (`vid`,`weight`,`name`), KEY `vid_name` (`vid`,`name`), KEY `name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores term information.' AUTO_INCREMENT=7 ; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='Stores term information.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `taxonomy_term_data` +-- Dumping data for table `taxonomy_term_data` -- -INSERT INTO `taxonomy_term_data` (`tid`, `vid`, `name`, `description`, `format`, `weight`) VALUES -(1, 2, 'Events', '', 'filtered_html', 0), -(2, 2, 'News', '', 'filtered_html', 0), -(3, 2, 'Uncategorized', '', 'filtered_html', 0), -(4, 1, 'News', '', 'filtered_html', 0), -(5, 1, 'Events', '', 'filtered_html', 0), -(6, 1, 'Uncategorized', '', 'filtered_html', 0); - --- -------------------------------------------------------- +LOCK TABLES `taxonomy_term_data` WRITE; +/*!40000 ALTER TABLE `taxonomy_term_data` DISABLE KEYS */; +INSERT INTO `taxonomy_term_data` VALUES (1,2,'Events','','filtered_html',0),(2,2,'News','','filtered_html',0),(3,2,'Uncategorized','','filtered_html',0),(4,1,'News','','filtered_html',0),(5,1,'Events','','filtered_html',0),(6,1,'Uncategorized','','filtered_html',0); +/*!40000 ALTER TABLE `taxonomy_term_data` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `taxonomy_term_hierarchy` +-- Table structure for table `taxonomy_term_hierarchy` -- -CREATE TABLE IF NOT EXISTS `taxonomy_term_hierarchy` ( +DROP TABLE IF EXISTS `taxonomy_term_hierarchy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_term_hierarchy` ( `tid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Primary Key: The taxonomy_term_data.tid of the term.', `parent` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Primary Key: The taxonomy_term_data.tid of the term’s parent. 0 indicates no parent.', PRIMARY KEY (`tid`,`parent`), KEY `parent` (`parent`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores the hierarchical relationship between terms.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `taxonomy_term_hierarchy` +-- Dumping data for table `taxonomy_term_hierarchy` -- -INSERT INTO `taxonomy_term_hierarchy` (`tid`, `parent`) VALUES -(1, 0), -(2, 0), -(3, 0), -(4, 0), -(5, 0), -(6, 0); - --- -------------------------------------------------------- +LOCK TABLES `taxonomy_term_hierarchy` WRITE; +/*!40000 ALTER TABLE `taxonomy_term_hierarchy` DISABLE KEYS */; +INSERT INTO `taxonomy_term_hierarchy` VALUES (1,0),(2,0),(3,0),(4,0),(5,0),(6,0); +/*!40000 ALTER TABLE `taxonomy_term_hierarchy` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `taxonomy_vocabulary` +-- Table structure for table `taxonomy_vocabulary` -- -CREATE TABLE IF NOT EXISTS `taxonomy_vocabulary` ( +DROP TABLE IF EXISTS `taxonomy_vocabulary`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `taxonomy_vocabulary` ( `vid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique vocabulary ID.', `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of the vocabulary.', `machine_name` varchar(255) NOT NULL DEFAULT '' COMMENT 'The vocabulary machine name.', @@ -5166,23 +2133,27 @@ CREATE TABLE IF NOT EXISTS `taxonomy_vocabulary` ( PRIMARY KEY (`vid`), UNIQUE KEY `machine_name` (`machine_name`), KEY `list` (`weight`,`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores vocabulary information.' AUTO_INCREMENT=3 ; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='Stores vocabulary information.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `taxonomy_vocabulary` +-- Dumping data for table `taxonomy_vocabulary` -- -INSERT INTO `taxonomy_vocabulary` (`vid`, `name`, `machine_name`, `description`, `hierarchy`, `module`, `weight`) VALUES -(1, 'Tags', 'tags', 'Use tags to group articles on similar topics into categories.', 0, 'taxonomy', 0), -(2, 'Categories', 'categories', '', 0, 'taxonomy', 0); - --- -------------------------------------------------------- +LOCK TABLES `taxonomy_vocabulary` WRITE; +/*!40000 ALTER TABLE `taxonomy_vocabulary` DISABLE KEYS */; +INSERT INTO `taxonomy_vocabulary` VALUES (1,'Tags','tags','Use tags to group articles on similar topics into categories.',0,'taxonomy',0),(2,'Categories','categories','',0,'taxonomy',0); +/*!40000 ALTER TABLE `taxonomy_vocabulary` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `url_alias` +-- Table structure for table `url_alias` -- -CREATE TABLE IF NOT EXISTS `url_alias` ( +DROP TABLE IF EXISTS `url_alias`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `url_alias` ( `pid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'A unique path alias identifier.', `source` varchar(255) NOT NULL DEFAULT '' COMMENT 'The Drupal path this alias is for; e.g. node/12.', `alias` varchar(255) NOT NULL DEFAULT '' COMMENT 'The alias for this path; e.g. title-of-the-story.', @@ -5190,15 +2161,26 @@ CREATE TABLE IF NOT EXISTS `url_alias` ( PRIMARY KEY (`pid`), KEY `alias_language_pid` (`alias`,`language`,`pid`), KEY `source_language_pid` (`source`,`language`,`pid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='A list of URL aliases for Drupal paths; a user may visit...' AUTO_INCREMENT=1 ; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='A list of URL aliases for Drupal paths; a user may visit...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `url_alias` +-- --- -------------------------------------------------------- +LOCK TABLES `url_alias` WRITE; +/*!40000 ALTER TABLE `url_alias` DISABLE KEYS */; +/*!40000 ALTER TABLE `url_alias` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `users` +-- Table structure for table `users` -- -CREATE TABLE IF NOT EXISTS `users` ( +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users` ( `uid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Primary Key: Unique user ID.', `name` varchar(60) NOT NULL DEFAULT '' COMMENT 'Unique user name.', `pass` varchar(128) NOT NULL DEFAULT '' COMMENT 'User’s password (hashed).', @@ -5222,256 +2204,75 @@ CREATE TABLE IF NOT EXISTS `users` ( KEY `mail` (`mail`), KEY `picture` (`picture`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores user data.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `users` +-- Dumping data for table `users` -- -INSERT INTO `users` (`uid`, `name`, `pass`, `mail`, `theme`, `signature`, `signature_format`, `created`, `access`, `login`, `status`, `timezone`, `language`, `picture`, `init`, `data`) VALUES -(0, '', '', '', '', '', NULL, 0, 0, 0, 0, NULL, '', 0, '', NULL), -(1, 'admin', '$S$DSrpd.tIfn9GOadLASuPFkRs5BMpdeyMJPBTvvm9TOmKnpBGw7ng', 'support@yoursite.com', '', 'Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti.', 'filtered_html', 1362080978, 1382084834, 1382084622, 1, 'Europe/Athens', '', 0, 'support@yoursite.com', 0x613a323a7b733a373a22636f6e74616374223b693a303b733a373a226f7665726c6179223b693a313b7d); - --- -------------------------------------------------------- +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES (0,'','','','','',NULL,0,0,0,0,NULL,'',0,'',NULL),(1,'admin','$S$DSrpd.tIfn9GOadLASuPFkRs5BMpdeyMJPBTvvm9TOmKnpBGw7ng','support@yoursite.com','','Sed lobortis feugiat turpis id molestie. Integer in adipiscing ipsum. Sed sit amet orci vitae turpis fringilla placerat. Suspendisse dignissim tincidunt enim quis ornare. Suspendisse potenti.','filtered_html',1362080978,1530783341,1530783341,1,'Europe/Athens','',0,'support@yoursite.com','a:2:{s:7:\"contact\";i:0;s:7:\"overlay\";i:1;}'); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `users_roles` +-- Table structure for table `users_roles` -- -CREATE TABLE IF NOT EXISTS `users_roles` ( +DROP TABLE IF EXISTS `users_roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users_roles` ( `uid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Primary Key: users.uid for user.', `rid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Primary Key: role.rid for role.', PRIMARY KEY (`uid`,`rid`), KEY `rid` (`rid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Maps users to roles.'; +/*!40101 SET character_set_client = @saved_cs_client */; -- --- Άδειασμα δεδομένων του πίνακα `users_roles` +-- Dumping data for table `users_roles` -- -INSERT INTO `users_roles` (`uid`, `rid`) VALUES -(1, 3); - --- -------------------------------------------------------- +LOCK TABLES `users_roles` WRITE; +/*!40000 ALTER TABLE `users_roles` DISABLE KEYS */; +INSERT INTO `users_roles` VALUES (1,3); +/*!40000 ALTER TABLE `users_roles` ENABLE KEYS */; +UNLOCK TABLES; -- --- Δομή πίνακα για τον πίνακα `variable` +-- Table structure for table `variable` -- -CREATE TABLE IF NOT EXISTS `variable` ( +DROP TABLE IF EXISTS `variable`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `variable` ( `name` varchar(128) NOT NULL DEFAULT '' COMMENT 'The name of the variable.', `value` longblob NOT NULL COMMENT 'The value of the variable.', PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Named variable/value pairs created by Drupal core or any...'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `variable` +-- + +LOCK TABLES `variable` WRITE; +/*!40000 ALTER TABLE `variable` DISABLE KEYS */; +INSERT INTO `variable` VALUES ('additional_settings__active_tab_blog','s:13:\"edit-workflow\";'),('admin_theme','s:5:\"seven\";'),('anonymous','s:9:\"Anonymous\";'),('blog_block_count','s:2:\"10\";'),('clean_url','s:1:\"1\";'),('comment_anonymous_blog','i:0;'),('comment_block_count','i:10;'),('comment_blog','s:1:\"2\";'),('comment_default_mode_blog','i:1;'),('comment_default_per_page_blog','s:2:\"50\";'),('comment_form_location_blog','i:1;'),('comment_page','i:0;'),('comment_preview_blog','s:1:\"1\";'),('comment_subject_field_blog','i:1;'),('contact_default_status','i:1;'),('cron_key','s:43:\"BxMjkcR3ZSDHN1MByZpK52-IAB3mAp5Jrg5CdmrPWZU\";'),('cron_last','i:1530783182;'),('css_js_query_string','s:6:\"pbdzyz\";'),('date_default_timezone','s:13:\"Europe/Athens\";'),('default_nodes_main','s:1:\"3\";'),('drupal_http_request_fails','b:0;'),('drupal_private_key','s:43:\"3te7dU4IpeRVrt8WzgL2llkwFx5jDVangsNLHNMuemU\";'),('email__active_tab','s:24:\"edit-email-admin-created\";'),('field_bundle_settings_node__article','a:2:{s:10:\"view_modes\";a:5:{s:6:\"teaser\";a:1:{s:15:\"custom_settings\";b:1;}s:4:\"full\";a:1:{s:15:\"custom_settings\";b:0;}s:3:\"rss\";a:1:{s:15:\"custom_settings\";b:0;}s:12:\"search_index\";a:1:{s:15:\"custom_settings\";b:0;}s:13:\"search_result\";a:1:{s:15:\"custom_settings\";b:0;}}s:12:\"extra_fields\";a:2:{s:4:\"form\";a:1:{s:5:\"title\";a:1:{s:6:\"weight\";s:1:\"0\";}}s:7:\"display\";a:0:{}}}'),('field_bundle_settings_node__blog','a:2:{s:10:\"view_modes\";a:5:{s:6:\"teaser\";a:1:{s:15:\"custom_settings\";b:1;}s:4:\"full\";a:1:{s:15:\"custom_settings\";b:0;}s:3:\"rss\";a:1:{s:15:\"custom_settings\";b:0;}s:12:\"search_index\";a:1:{s:15:\"custom_settings\";b:0;}s:13:\"search_result\";a:1:{s:15:\"custom_settings\";b:0;}}s:12:\"extra_fields\";a:2:{s:4:\"form\";a:1:{s:5:\"title\";a:1:{s:6:\"weight\";s:1:\"0\";}}s:7:\"display\";a:0:{}}}'),('file_default_scheme','s:6:\"public\";'),('file_private_path','s:0:\"\";'),('file_public_path','s:19:\"sites/default/files\";'),('file_temporary_path','s:23:\"sites/default/files/tmp\";'),('filter_fallback_format','s:10:\"plain_text\";'),('install_profile','s:8:\"standard\";'),('install_task','s:4:\"done\";'),('install_time','i:1362081193;'),('menu_expanded','a:2:{i:0;s:9:\"main-menu\";i:1;s:23:\"menu-bottom-footer-menu\";}'),('menu_main_links_source','s:9:\"main-menu\";'),('menu_masks','a:34:{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:28;i:22;i:24;i:23;i:21;i:24;i:15;i:25;i:14;i:26;i:13;i:27;i:11;i:28;i:7;i:29;i:6;i:30;i:5;i:31;i:3;i:32;i:2;i:33;i:1;}'),('menu_options_blog','a:1:{i:0;s:9:\"main-menu\";}'),('menu_parent_blog','s:11:\"main-menu:0\";'),('menu_secondary_links_source','s:23:\"menu-bottom-footer-menu\";'),('node_admin_theme','s:1:\"1\";'),('node_cron_last','s:10:\"1366193601\";'),('node_options_blog','a:1:{i:0;s:6:\"status\";}'),('node_options_page','a:1:{i:0;s:6:\"status\";}'),('node_preview_blog','s:1:\"1\";'),('node_recent_block_count','s:2:\"10\";'),('node_submitted_blog','i:1;'),('node_submitted_page','b:0;'),('path_alias_whitelist','a:0:{}'),('site_403','s:0:\"\";'),('site_404','s:0:\"\";'),('site_default_country','s:2:\"GR\";'),('site_frontpage','s:4:\"node\";'),('site_mail','s:20:\"support@yoursite.com\";'),('site_name','s:10:\"SimpleCorp\";'),('site_slogan','s:0:\"\";'),('superfish_arrow_1','i:1;'),('superfish_arrow_2','i:1;'),('superfish_bgf_1','i:0;'),('superfish_bgf_2','i:0;'),('superfish_delay_1','s:3:\"800\";'),('superfish_delay_2','s:3:\"800\";'),('superfish_depth_1','s:2:\"-1\";'),('superfish_depth_2','s:2:\"-1\";'),('superfish_dfirstlast_1','i:0;'),('superfish_dfirstlast_2','i:0;'),('superfish_dzebra_1','i:0;'),('superfish_dzebra_2','i:0;'),('superfish_expanded_1','i:0;'),('superfish_firstlast_1','i:1;'),('superfish_firstlast_2','i:1;'),('superfish_hhldescription_1','i:0;'),('superfish_hid_1','i:1;'),('superfish_hid_2','i:1;'),('superfish_hlclass_1','s:0:\"\";'),('superfish_hlclass_2','s:0:\"\";'),('superfish_hldescription_1','i:0;'),('superfish_hldescription_2','i:0;'),('superfish_hldexclude_1','s:0:\"\";'),('superfish_hldexclude_2','s:0:\"\";'),('superfish_hldmenus_1','s:0:\"\";'),('superfish_hldmenus_2','s:0:\"\";'),('superfish_itemcounter_1','i:1;'),('superfish_itemcounter_2','i:1;'),('superfish_itemcount_1','i:1;'),('superfish_itemcount_2','i:1;'),('superfish_itemdepth_1','i:1;'),('superfish_itemdepth_2','i:1;'),('superfish_liclass_1','s:0:\"\";'),('superfish_liclass_2','s:0:\"\";'),('superfish_maxwidth_1','s:2:\"27\";'),('superfish_maxwidth_2','s:2:\"27\";'),('superfish_mcdepth_1','s:1:\"1\";'),('superfish_mcdepth_2','s:1:\"1\";'),('superfish_mcexclude_1','s:0:\"\";'),('superfish_mcexclude_2','s:0:\"\";'),('superfish_mclevels_1','s:1:\"1\";'),('superfish_mclevels_2','s:1:\"1\";'),('superfish_menu_1','s:11:\"main-menu:0\";'),('superfish_menu_2','s:11:\"main-menu:0\";'),('superfish_minwidth_1','s:2:\"12\";'),('superfish_minwidth_2','s:2:\"12\";'),('superfish_multicolumn_1','i:0;'),('superfish_multicolumn_2','i:0;'),('superfish_name_1','s:11:\"Superfish 1\";'),('superfish_name_2','s:11:\"Superfish 2\";'),('superfish_pathclass_1','s:12:\"active-trail\";'),('superfish_pathclass_2','s:12:\"active-trail\";'),('superfish_pathcss_1','s:0:\"\";'),('superfish_pathcss_2','s:0:\"\";'),('superfish_pathlevels_1','s:1:\"1\";'),('superfish_pathlevels_2','s:1:\"1\";'),('superfish_shadow_1','i:1;'),('superfish_shadow_2','i:1;'),('superfish_slide_1','s:8:\"vertical\";'),('superfish_slide_2','s:4:\"none\";'),('superfish_smallasa_1','i:0;'),('superfish_smallbp_1','s:3:\"960\";'),('superfish_smallchc_1','i:0;'),('superfish_smallcmc_1','i:0;'),('superfish_smallech_1','s:0:\"\";'),('superfish_smallecm_1','s:0:\"\";'),('superfish_smallich_1','s:0:\"\";'),('superfish_smallicm_1','s:0:\"\";'),('superfish_smallset_1','s:0:\"\";'),('superfish_smallual_1','s:0:\"\";'),('superfish_smalluam_1','s:1:\"0\";'),('superfish_smallua_1','s:1:\"0\";'),('superfish_small_1','s:1:\"2\";'),('superfish_speed_1','s:4:\"fast\";'),('superfish_speed_2','s:4:\"fast\";'),('superfish_spp_1','i:0;'),('superfish_spp_2','i:0;'),('superfish_style_1','s:7:\"default\";'),('superfish_style_2','s:7:\"default\";'),('superfish_supersubs_1','i:1;'),('superfish_supersubs_2','i:1;'),('superfish_touchbp_1','s:3:\"960\";'),('superfish_touchual_1','s:0:\"\";'),('superfish_touchual_2','s:0:\"\";'),('superfish_touchuam_1','s:1:\"0\";'),('superfish_touchua_1','s:1:\"0\";'),('superfish_touchua_2','i:0;'),('superfish_touch_1','s:1:\"0\";'),('superfish_touch_2','i:0;'),('superfish_type_1','s:10:\"horizontal\";'),('superfish_type_2','s:10:\"horizontal\";'),('superfish_ulclass_1','s:0:\"\";'),('superfish_ulclass_2','s:0:\"\";'),('superfish_use_item_theme_1','i:1;'),('superfish_use_link_theme_1','i:1;'),('superfish_wraphlt_1','s:0:\"\";'),('superfish_wraphlt_2','s:0:\"\";'),('superfish_wraphl_1','s:0:\"\";'),('superfish_wraphl_2','s:0:\"\";'),('superfish_wrapmul_1','s:0:\"\";'),('superfish_wrapmul_2','s:0:\"\";'),('superfish_wrapul_1','s:0:\"\";'),('superfish_wrapul_2','s:0:\"\";'),('superfish_zebra_1','i:1;'),('superfish_zebra_2','i:1;'),('theme_default','s:10:\"simplecorp\";'),('theme_simplecorp_settings','a:50:{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:1;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:1;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:\"\";s:11:\"theme_color\";s:7:\"default\";s:12:\"button_color\";s:10:\"steel_blue\";s:20:\"social_icons_display\";i:0;s:17:\"header_tooltip_js\";i:1;s:19:\"main_menu_custom_js\";i:1;s:17:\"slideshow_display\";i:0;s:12:\"slideshow_js\";i:1;s:16:\"slideshow_effect\";s:5:\"slide\";s:21:\"slideshow_effect_time\";s:1:\"5\";s:16:\"slideshow_random\";i:0;s:15:\"slideshow_pause\";i:1;s:18:\"slideshow_controls\";i:1;s:15:\"slideshow_touch\";i:1;s:19:\"highlighted_display\";i:0;s:16:\"carousel_display\";i:0;s:11:\"carousel_js\";i:1;s:20:\"carousel_effect_time\";s:3:\"0.6\";s:15:\"carousel_effect\";s:11:\"easeOutCirc\";s:12:\"quicksand_js\";i:1;s:14:\"prettyphoto_js\";i:1;s:17:\"prettyphoto_theme\";s:10:\"pp_default\";s:24:\"prettyphoto_social_tools\";i:1;s:17:\"jtweetanywhere_js\";i:1;s:17:\"jtweetanywhere_id\";s:14:\"morethanthemes\";s:14:\"columns_enable\";i:1;s:12:\"boxes_enable\";i:1;s:12:\"lists_enable\";i:1;s:18:\"breadcrumb_display\";i:1;s:20:\"breadcrumb_separator\";s:1:\"/\";s:21:\"responsive_menu_state\";i:0;s:27:\"responsive_menu_switchwidth\";s:3:\"960\";s:29:\"responsive_menu_topoptiontext\";s:13:\"Select a page\";s:15:\"responsive_meta\";i:1;s:18:\"responsive_respond\";i:0;s:16:\"tabs__active_tab\";s:14:\"edit-looknfeel\";}'),('update_last_check','i:1530783362;'),('update_last_email_notification','i:1382037443;'),('update_notify_emails','a:1:{i:0;s:20:\"support@yoursite.com\";}'),('user_admin_role','s:1:\"3\";'),('user_cancel_method','s:17:\"user_cancel_block\";'),('user_email_verification','i:1;'),('user_mail_cancel_confirm_body','s:381:\"[user:name],\r\n\r\nA request to cancel your account has been made at [site:name].\r\n\r\nYou may now cancel your account on [site:url-brief] by clicking this link or copying and pasting it into your browser:\r\n\r\n[user:cancel-url]\r\n\r\nNOTE: The cancellation of your account is not reversible.\r\n\r\nThis link expires in one day and nothing will happen if it is not used.\r\n\r\n-- [site:name] team\";'),('user_mail_cancel_confirm_subject','s:59:\"Account cancellation request for [user:name] at [site:name]\";'),('user_mail_password_reset_body','s:407:\"[user:name],\r\n\r\nA request to reset the password for your account has been made at [site:name].\r\n\r\nYou may now log in by clicking this link or copying and pasting it to your browser:\r\n\r\n[user:one-time-login-url]\r\n\r\nThis link can only be used once to log in and will lead you to a page where you can set your password. It expires after one day and nothing will happen if it\'s not used.\r\n\r\n-- [site:name] team\";'),('user_mail_password_reset_subject','s:60:\"Replacement login information for [user:name] at [site:name]\";'),('user_mail_register_admin_created_body','s:476:\"[user:name],\r\n\r\nA site administrator at [site:name] has created an account for you. You may now log in by clicking this link or copying and pasting it to your browser:\r\n\r\n[user:one-time-login-url]\r\n\r\nThis link can only be used once to log in and will lead you to a page where you can set your password.\r\n\r\nAfter setting your password, you will be able to log in at [site:login-url] in the future using:\r\n\r\nusername: [user:name]\r\npassword: Your password\r\n\r\n-- [site:name] team\";'),('user_mail_register_admin_created_subject','s:58:\"An administrator created an account for you at [site:name]\";'),('user_mail_register_no_approval_required_body','s:450:\"[user:name],\r\n\r\nThank you for registering at [site:name]. You may now log in by clicking this link or copying and pasting it to your browser:\r\n\r\n[user:one-time-login-url]\r\n\r\nThis link can only be used once to log in and will lead you to a page where you can set your password.\r\n\r\nAfter setting your password, you will be able to log in at [site:login-url] in the future using:\r\n\r\nusername: [user:name]\r\npassword: Your password\r\n\r\n-- [site:name] team\";'),('user_mail_register_no_approval_required_subject','s:46:\"Account details for [user:name] at [site:name]\";'),('user_mail_register_pending_approval_body','s:287:\"[user:name],\r\n\r\nThank you for registering at [site:name]. Your application for an account is currently pending approval. Once it has been approved, you will receive another e-mail containing information about how to log in, set your password, and other details.\r\n\r\n\r\n-- [site:name] team\";'),('user_mail_register_pending_approval_subject','s:71:\"Account details for [user:name] at [site:name] (pending admin approval)\";'),('user_mail_status_activated_body','s:461:\"[user:name],\r\n\r\nYour account at [site:name] has been activated.\r\n\r\nYou may now log in by clicking this link or copying and pasting it into your browser:\r\n\r\n[user:one-time-login-url]\r\n\r\nThis link can only be used once to log in and will lead you to a page where you can set your password.\r\n\r\nAfter setting your password, you will be able to log in at [site:login-url] in the future using:\r\n\r\nusername: [user:name]\r\npassword: Your password\r\n\r\n-- [site:name] team\";'),('user_mail_status_activated_notify','i:1;'),('user_mail_status_activated_subject','s:57:\"Account details for [user:name] at [site:name] (approved)\";'),('user_mail_status_blocked_body','s:85:\"[user:name],\r\n\r\nYour account on [site:name] has been blocked.\r\n\r\n-- [site:name] team\";'),('user_mail_status_blocked_notify','i:0;'),('user_mail_status_blocked_subject','s:56:\"Account details for [user:name] at [site:name] (blocked)\";'),('user_mail_status_canceled_body','s:86:\"[user:name],\r\n\r\nYour account on [site:name] has been canceled.\r\n\r\n-- [site:name] team\";'),('user_mail_status_canceled_notify','i:0;'),('user_mail_status_canceled_subject','s:57:\"Account details for [user:name] at [site:name] (canceled)\";'),('user_pictures','i:1;'),('user_picture_default','s:47:\"sites/default/files/pictures/generic-avatar.jpg\";'),('user_picture_dimensions','s:9:\"1024x1024\";'),('user_picture_file_size','s:3:\"800\";'),('user_picture_guidelines','s:0:\"\";'),('user_picture_path','s:8:\"pictures\";'),('user_picture_style','s:9:\"thumbnail\";'),('user_register','s:1:\"2\";'),('user_signatures','i:1;'); +/*!40000 ALTER TABLE `variable` ENABLE KEYS */; +UNLOCK TABLES; -- --- Άδειασμα δεδομένων του πίνακα `variable` --- - -INSERT INTO `variable` (`name`, `value`) VALUES -('additional_settings__active_tab_blog', 0x733a31333a22656469742d776f726b666c6f77223b), -('admin_theme', 0x733a353a22736576656e223b), -('anonymous', 0x733a393a22416e6f6e796d6f7573223b), -('blog_block_count', 0x733a323a223130223b), -('clean_url', 0x733a313a2231223b), -('comment_anonymous_blog', 0x693a303b), -('comment_block_count', 0x693a31303b), -('comment_blog', 0x733a313a2232223b), -('comment_default_mode_blog', 0x693a313b), -('comment_default_per_page_blog', 0x733a323a223530223b), -('comment_form_location_blog', 0x693a313b), -('comment_page', 0x693a303b), -('comment_preview_blog', 0x733a313a2231223b), -('comment_subject_field_blog', 0x693a313b), -('contact_default_status', 0x693a313b), -('cron_key', 0x733a34333a2242784d6a6b6352335a5344484e314d42795a704b35322d494142336d4170354a72673543646d7250575a55223b), -('cron_last', 0x693a313338323038343536363b), -('css_js_query_string', 0x733a363a226d757478736f223b), -('date_default_timezone', 0x733a31333a224575726f70652f417468656e73223b), -('default_nodes_main', 0x733a313a2233223b), -('drupal_http_request_fails', 0x623a303b), -('drupal_private_key', 0x733a34333a22337465376455344970655256727438577a674c326c6c6b774678356a4456616e67734e4c484e4d75656d55223b), -('email__active_tab', 0x733a32343a22656469742d656d61696c2d61646d696e2d63726561746564223b), -('field_bundle_settings_node__article', 0x613a323a7b733a31303a22766965775f6d6f646573223b613a353a7b733a363a22746561736572223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a313b7d733a343a2266756c6c223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a303b7d733a333a22727373223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a303b7d733a31323a227365617263685f696e646578223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a303b7d733a31333a227365617263685f726573756c74223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a303b7d7d733a31323a2265787472615f6669656c6473223b613a323a7b733a343a22666f726d223b613a313a7b733a353a227469746c65223b613a313a7b733a363a22776569676874223b733a313a2230223b7d7d733a373a22646973706c6179223b613a303a7b7d7d7d), -('field_bundle_settings_node__blog', 0x613a323a7b733a31303a22766965775f6d6f646573223b613a353a7b733a363a22746561736572223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a313b7d733a343a2266756c6c223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a303b7d733a333a22727373223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a303b7d733a31323a227365617263685f696e646578223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a303b7d733a31333a227365617263685f726573756c74223b613a313a7b733a31353a22637573746f6d5f73657474696e6773223b623a303b7d7d733a31323a2265787472615f6669656c6473223b613a323a7b733a343a22666f726d223b613a313a7b733a353a227469746c65223b613a313a7b733a363a22776569676874223b733a313a2230223b7d7d733a373a22646973706c6179223b613a303a7b7d7d7d), -('file_default_scheme', 0x733a363a227075626c6963223b), -('file_private_path', 0x733a303a22223b), -('file_public_path', 0x733a31393a2273697465732f64656661756c742f66696c6573223b), -('file_temporary_path', 0x733a32333a2273697465732f64656661756c742f66696c65732f746d70223b), -('filter_fallback_format', 0x733a31303a22706c61696e5f74657874223b), -('install_profile', 0x733a383a227374616e64617264223b), -('install_task', 0x733a343a22646f6e65223b), -('install_time', 0x693a313336323038313139333b), -('menu_expanded', 0x613a323a7b693a303b733a393a226d61696e2d6d656e75223b693a313b733a32333a226d656e752d626f74746f6d2d666f6f7465722d6d656e75223b7d), -('menu_main_links_source', 0x733a393a226d61696e2d6d656e75223b), -('menu_masks', 0x613a33343a7b693a303b693a3530313b693a313b693a3439333b693a323b693a3235303b693a333b693a3234373b693a343b693a3234363b693a353b693a3234353b693a363b693a3132353b693a373b693a3132333b693a383b693a3132323b693a393b693a3132313b693a31303b693a3131373b693a31313b693a36333b693a31323b693a36323b693a31333b693a36313b693a31343b693a36303b693a31353b693a35393b693a31363b693a35383b693a31373b693a34343b693a31383b693a33313b693a31393b693a33303b693a32303b693a32393b693a32313b693a32383b693a32323b693a32343b693a32333b693a32313b693a32343b693a31353b693a32353b693a31343b693a32363b693a31333b693a32373b693a31313b693a32383b693a373b693a32393b693a363b693a33303b693a353b693a33313b693a333b693a33323b693a323b693a33333b693a313b7d), -('menu_options_blog', 0x613a313a7b693a303b733a393a226d61696e2d6d656e75223b7d), -('menu_parent_blog', 0x733a31313a226d61696e2d6d656e753a30223b), -('menu_secondary_links_source', 0x733a32333a226d656e752d626f74746f6d2d666f6f7465722d6d656e75223b), -('node_admin_theme', 0x733a313a2231223b), -('node_cron_last', 0x733a31303a2231333636313933363031223b), -('node_options_blog', 0x613a313a7b693a303b733a363a22737461747573223b7d), -('node_options_page', 0x613a313a7b693a303b733a363a22737461747573223b7d), -('node_preview_blog', 0x733a313a2231223b), -('node_recent_block_count', 0x733a323a223130223b), -('node_submitted_blog', 0x693a313b), -('node_submitted_page', 0x623a303b), -('path_alias_whitelist', 0x613a303a7b7d), -('site_403', 0x733a303a22223b), -('site_404', 0x733a303a22223b), -('site_default_country', 0x733a323a224752223b), -('site_frontpage', 0x733a343a226e6f6465223b), -('site_mail', 0x733a32303a22737570706f727440796f7572736974652e636f6d223b), -('site_name', 0x733a31303a2253696d706c65436f7270223b), -('site_slogan', 0x733a303a22223b), -('superfish_arrow_1', 0x693a313b), -('superfish_arrow_2', 0x693a313b), -('superfish_bgf_1', 0x693a303b), -('superfish_bgf_2', 0x693a303b), -('superfish_delay_1', 0x733a333a22383030223b), -('superfish_delay_2', 0x733a333a22383030223b), -('superfish_depth_1', 0x733a323a222d31223b), -('superfish_depth_2', 0x733a323a222d31223b), -('superfish_dfirstlast_1', 0x693a303b), -('superfish_dfirstlast_2', 0x693a303b), -('superfish_dzebra_1', 0x693a303b), -('superfish_dzebra_2', 0x693a303b), -('superfish_expanded_1', 0x693a303b), -('superfish_firstlast_1', 0x693a313b), -('superfish_firstlast_2', 0x693a313b), -('superfish_hhldescription_1', 0x693a303b), -('superfish_hid_1', 0x693a313b), -('superfish_hid_2', 0x693a313b), -('superfish_hlclass_1', 0x733a303a22223b), -('superfish_hlclass_2', 0x733a303a22223b), -('superfish_hldescription_1', 0x693a303b), -('superfish_hldescription_2', 0x693a303b), -('superfish_hldexclude_1', 0x733a303a22223b), -('superfish_hldexclude_2', 0x733a303a22223b), -('superfish_hldmenus_1', 0x733a303a22223b), -('superfish_hldmenus_2', 0x733a303a22223b), -('superfish_itemcounter_1', 0x693a313b), -('superfish_itemcounter_2', 0x693a313b), -('superfish_itemcount_1', 0x693a313b), -('superfish_itemcount_2', 0x693a313b), -('superfish_itemdepth_1', 0x693a313b), -('superfish_itemdepth_2', 0x693a313b), -('superfish_liclass_1', 0x733a303a22223b), -('superfish_liclass_2', 0x733a303a22223b), -('superfish_maxwidth_1', 0x733a323a223237223b), -('superfish_maxwidth_2', 0x733a323a223237223b), -('superfish_mcdepth_1', 0x733a313a2231223b), -('superfish_mcdepth_2', 0x733a313a2231223b), -('superfish_mcexclude_1', 0x733a303a22223b), -('superfish_mcexclude_2', 0x733a303a22223b), -('superfish_mclevels_1', 0x733a313a2231223b), -('superfish_mclevels_2', 0x733a313a2231223b), -('superfish_menu_1', 0x733a31313a226d61696e2d6d656e753a30223b), -('superfish_menu_2', 0x733a31313a226d61696e2d6d656e753a30223b), -('superfish_minwidth_1', 0x733a323a223132223b), -('superfish_minwidth_2', 0x733a323a223132223b), -('superfish_multicolumn_1', 0x693a303b), -('superfish_multicolumn_2', 0x693a303b), -('superfish_name_1', 0x733a31313a225375706572666973682031223b), -('superfish_name_2', 0x733a31313a225375706572666973682032223b), -('superfish_pathclass_1', 0x733a31323a226163746976652d747261696c223b), -('superfish_pathclass_2', 0x733a31323a226163746976652d747261696c223b), -('superfish_pathcss_1', 0x733a303a22223b), -('superfish_pathcss_2', 0x733a303a22223b), -('superfish_pathlevels_1', 0x733a313a2231223b), -('superfish_pathlevels_2', 0x733a313a2231223b), -('superfish_shadow_1', 0x693a313b), -('superfish_shadow_2', 0x693a313b), -('superfish_slide_1', 0x733a383a22766572746963616c223b), -('superfish_slide_2', 0x733a343a226e6f6e65223b), -('superfish_smallasa_1', 0x693a303b), -('superfish_smallbp_1', 0x733a333a22393630223b), -('superfish_smallchc_1', 0x693a303b), -('superfish_smallcmc_1', 0x693a303b), -('superfish_smallech_1', 0x733a303a22223b), -('superfish_smallecm_1', 0x733a303a22223b), -('superfish_smallich_1', 0x733a303a22223b), -('superfish_smallicm_1', 0x733a303a22223b), -('superfish_smallset_1', 0x733a303a22223b), -('superfish_smallual_1', 0x733a303a22223b), -('superfish_smalluam_1', 0x733a313a2230223b), -('superfish_smallua_1', 0x733a313a2230223b), -('superfish_small_1', 0x733a313a2232223b), -('superfish_speed_1', 0x733a343a2266617374223b), -('superfish_speed_2', 0x733a343a2266617374223b), -('superfish_spp_1', 0x693a303b), -('superfish_spp_2', 0x693a303b), -('superfish_style_1', 0x733a373a2264656661756c74223b), -('superfish_style_2', 0x733a373a2264656661756c74223b), -('superfish_supersubs_1', 0x693a313b), -('superfish_supersubs_2', 0x693a313b), -('superfish_touchbp_1', 0x733a333a22393630223b), -('superfish_touchual_1', 0x733a303a22223b), -('superfish_touchual_2', 0x733a303a22223b), -('superfish_touchuam_1', 0x733a313a2230223b), -('superfish_touchua_1', 0x733a313a2230223b), -('superfish_touchua_2', 0x693a303b), -('superfish_touch_1', 0x733a313a2230223b), -('superfish_touch_2', 0x693a303b), -('superfish_type_1', 0x733a31303a22686f72697a6f6e74616c223b), -('superfish_type_2', 0x733a31303a22686f72697a6f6e74616c223b), -('superfish_ulclass_1', 0x733a303a22223b), -('superfish_ulclass_2', 0x733a303a22223b), -('superfish_use_item_theme_1', 0x693a313b), -('superfish_use_link_theme_1', 0x693a313b), -('superfish_wraphlt_1', 0x733a303a22223b), -('superfish_wraphlt_2', 0x733a303a22223b), -('superfish_wraphl_1', 0x733a303a22223b), -('superfish_wraphl_2', 0x733a303a22223b), -('superfish_wrapmul_1', 0x733a303a22223b), -('superfish_wrapmul_2', 0x733a303a22223b), -('superfish_wrapul_1', 0x733a303a22223b), -('superfish_wrapul_2', 0x733a303a22223b), -('superfish_zebra_1', 0x693a313b), -('superfish_zebra_2', 0x693a313b), -('theme_default', 0x733a31303a2273696d706c65636f7270223b), -('theme_simplecorp_settings', 0x613a35303a7b733a31313a22746f67676c655f6c6f676f223b693a313b733a31313a22746f67676c655f6e616d65223b693a313b733a31333a22746f67676c655f736c6f67616e223b693a313b733a32343a22746f67676c655f6e6f64655f757365725f70696374757265223b693a313b733a32373a22746f67676c655f636f6d6d656e745f757365725f70696374757265223b693a313b733a33323a22746f67676c655f636f6d6d656e745f757365725f766572696669636174696f6e223b693a313b733a31343a22746f67676c655f66617669636f6e223b693a313b733a31363a22746f67676c655f6d61696e5f6d656e75223b693a313b733a32313a22746f67676c655f7365636f6e646172795f6d656e75223b693a313b733a31323a2264656661756c745f6c6f676f223b693a313b733a393a226c6f676f5f70617468223b733a303a22223b733a31313a226c6f676f5f75706c6f6164223b733a303a22223b733a31353a2264656661756c745f66617669636f6e223b693a313b733a31323a2266617669636f6e5f70617468223b733a303a22223b733a31343a2266617669636f6e5f75706c6f6164223b733a303a22223b733a31313a227468656d655f636f6c6f72223b733a373a2264656661756c74223b733a31323a22627574746f6e5f636f6c6f72223b733a31303a22737465656c5f626c7565223b733a32303a22736f6369616c5f69636f6e735f646973706c6179223b693a303b733a31373a226865616465725f746f6f6c7469705f6a73223b693a313b733a31393a226d61696e5f6d656e755f637573746f6d5f6a73223b693a313b733a31373a22736c69646573686f775f646973706c6179223b693a303b733a31323a22736c69646573686f775f6a73223b693a313b733a31363a22736c69646573686f775f656666656374223b733a353a22736c696465223b733a32313a22736c69646573686f775f6566666563745f74696d65223b733a313a2235223b733a31363a22736c69646573686f775f72616e646f6d223b693a303b733a31353a22736c69646573686f775f7061757365223b693a313b733a31383a22736c69646573686f775f636f6e74726f6c73223b693a313b733a31353a22736c69646573686f775f746f756368223b693a313b733a31393a22686967686c6967687465645f646973706c6179223b693a303b733a31363a226361726f7573656c5f646973706c6179223b693a303b733a31313a226361726f7573656c5f6a73223b693a313b733a32303a226361726f7573656c5f6566666563745f74696d65223b733a333a22302e36223b733a31353a226361726f7573656c5f656666656374223b733a31313a22656173654f757443697263223b733a31323a22717569636b73616e645f6a73223b693a313b733a31343a2270726574747970686f746f5f6a73223b693a313b733a31373a2270726574747970686f746f5f7468656d65223b733a31303a2270705f64656661756c74223b733a32343a2270726574747970686f746f5f736f6369616c5f746f6f6c73223b693a313b733a31373a226a7477656574616e7977686572655f6a73223b693a313b733a31373a226a7477656574616e7977686572655f6964223b733a31343a226d6f72657468616e7468656d6573223b733a31343a22636f6c756d6e735f656e61626c65223b693a313b733a31323a22626f7865735f656e61626c65223b693a313b733a31323a226c697374735f656e61626c65223b693a313b733a31383a2262726561646372756d625f646973706c6179223b693a313b733a32303a2262726561646372756d625f736570617261746f72223b733a313a222f223b733a32313a22726573706f6e736976655f6d656e755f7374617465223b693a303b733a32373a22726573706f6e736976655f6d656e755f7377697463687769647468223b733a333a22393630223b733a32393a22726573706f6e736976655f6d656e755f746f706f7074696f6e74657874223b733a31333a2253656c65637420612070616765223b733a31353a22726573706f6e736976655f6d657461223b693a313b733a31383a22726573706f6e736976655f726573706f6e64223b693a303b733a31363a22746162735f5f6163746976655f746162223b733a31343a22656469742d6c6f6f6b6e6665656c223b7d), -('update_last_check', 0x693a313338323038343538353b), -('update_last_email_notification', 0x693a313338323033373434333b), -('update_notify_emails', 0x613a313a7b693a303b733a32303a22737570706f727440796f7572736974652e636f6d223b7d), -('user_admin_role', 0x733a313a2233223b), -('user_cancel_method', 0x733a31373a22757365725f63616e63656c5f626c6f636b223b), -('user_email_verification', 0x693a313b), -('user_mail_cancel_confirm_body', 0x733a3338313a225b757365723a6e616d655d2c0d0a0d0a41207265717565737420746f2063616e63656c20796f7572206163636f756e7420686173206265656e206d616465206174205b736974653a6e616d655d2e0d0a0d0a596f75206d6179206e6f772063616e63656c20796f7572206163636f756e74206f6e205b736974653a75726c2d62726965665d20627920636c69636b696e672074686973206c696e6b206f7220636f7079696e6720616e642070617374696e6720697420696e746f20796f75722062726f777365723a0d0a0d0a5b757365723a63616e63656c2d75726c5d0d0a0d0a4e4f54453a205468652063616e63656c6c6174696f6e206f6620796f7572206163636f756e74206973206e6f742072657665727369626c652e0d0a0d0a54686973206c696e6b206578706972657320696e206f6e652064617920616e64206e6f7468696e672077696c6c2068617070656e206966206974206973206e6f7420757365642e0d0a0d0a2d2d20205b736974653a6e616d655d207465616d223b), -('user_mail_cancel_confirm_subject', 0x733a35393a224163636f756e742063616e63656c6c6174696f6e207265717565737420666f72205b757365723a6e616d655d206174205b736974653a6e616d655d223b), -('user_mail_password_reset_body', 0x733a3430373a225b757365723a6e616d655d2c0d0a0d0a41207265717565737420746f207265736574207468652070617373776f726420666f7220796f7572206163636f756e7420686173206265656e206d616465206174205b736974653a6e616d655d2e0d0a0d0a596f75206d6179206e6f77206c6f6720696e20627920636c69636b696e672074686973206c696e6b206f7220636f7079696e6720616e642070617374696e6720697420746f20796f75722062726f777365723a0d0a0d0a5b757365723a6f6e652d74696d652d6c6f67696e2d75726c5d0d0a0d0a54686973206c696e6b2063616e206f6e6c792062652075736564206f6e636520746f206c6f6720696e20616e642077696c6c206c65616420796f7520746f2061207061676520776865726520796f752063616e2073657420796f75722070617373776f72642e2049742065787069726573206166746572206f6e652064617920616e64206e6f7468696e672077696c6c2068617070656e2069662069742773206e6f7420757365642e0d0a0d0a2d2d20205b736974653a6e616d655d207465616d223b), -('user_mail_password_reset_subject', 0x733a36303a225265706c6163656d656e74206c6f67696e20696e666f726d6174696f6e20666f72205b757365723a6e616d655d206174205b736974653a6e616d655d223b), -('user_mail_register_admin_created_body', 0x733a3437363a225b757365723a6e616d655d2c0d0a0d0a4120736974652061646d696e6973747261746f72206174205b736974653a6e616d655d20686173206372656174656420616e206163636f756e7420666f7220796f752e20596f75206d6179206e6f77206c6f6720696e20627920636c69636b696e672074686973206c696e6b206f7220636f7079696e6720616e642070617374696e6720697420746f20796f75722062726f777365723a0d0a0d0a5b757365723a6f6e652d74696d652d6c6f67696e2d75726c5d0d0a0d0a54686973206c696e6b2063616e206f6e6c792062652075736564206f6e636520746f206c6f6720696e20616e642077696c6c206c65616420796f7520746f2061207061676520776865726520796f752063616e2073657420796f75722070617373776f72642e0d0a0d0a41667465722073657474696e6720796f75722070617373776f72642c20796f752077696c6c2062652061626c6520746f206c6f6720696e206174205b736974653a6c6f67696e2d75726c5d20696e2074686520667574757265207573696e673a0d0a0d0a757365726e616d653a205b757365723a6e616d655d0d0a70617373776f72643a20596f75722070617373776f72640d0a0d0a2d2d20205b736974653a6e616d655d207465616d223b), -('user_mail_register_admin_created_subject', 0x733a35383a22416e2061646d696e6973747261746f72206372656174656420616e206163636f756e7420666f7220796f75206174205b736974653a6e616d655d223b), -('user_mail_register_no_approval_required_body', 0x733a3435303a225b757365723a6e616d655d2c0d0a0d0a5468616e6b20796f7520666f72207265676973746572696e67206174205b736974653a6e616d655d2e20596f75206d6179206e6f77206c6f6720696e20627920636c69636b696e672074686973206c696e6b206f7220636f7079696e6720616e642070617374696e6720697420746f20796f75722062726f777365723a0d0a0d0a5b757365723a6f6e652d74696d652d6c6f67696e2d75726c5d0d0a0d0a54686973206c696e6b2063616e206f6e6c792062652075736564206f6e636520746f206c6f6720696e20616e642077696c6c206c65616420796f7520746f2061207061676520776865726520796f752063616e2073657420796f75722070617373776f72642e0d0a0d0a41667465722073657474696e6720796f75722070617373776f72642c20796f752077696c6c2062652061626c6520746f206c6f6720696e206174205b736974653a6c6f67696e2d75726c5d20696e2074686520667574757265207573696e673a0d0a0d0a757365726e616d653a205b757365723a6e616d655d0d0a70617373776f72643a20596f75722070617373776f72640d0a0d0a2d2d20205b736974653a6e616d655d207465616d223b), -('user_mail_register_no_approval_required_subject', 0x733a34363a224163636f756e742064657461696c7320666f72205b757365723a6e616d655d206174205b736974653a6e616d655d223b), -('user_mail_register_pending_approval_body', 0x733a3238373a225b757365723a6e616d655d2c0d0a0d0a5468616e6b20796f7520666f72207265676973746572696e67206174205b736974653a6e616d655d2e20596f7572206170706c69636174696f6e20666f7220616e206163636f756e742069732063757272656e746c792070656e64696e6720617070726f76616c2e204f6e636520697420686173206265656e20617070726f7665642c20796f752077696c6c207265636569766520616e6f7468657220652d6d61696c20636f6e7461696e696e6720696e666f726d6174696f6e2061626f757420686f7720746f206c6f6720696e2c2073657420796f75722070617373776f72642c20616e64206f746865722064657461696c732e0d0a0d0a0d0a2d2d20205b736974653a6e616d655d207465616d223b), -('user_mail_register_pending_approval_subject', 0x733a37313a224163636f756e742064657461696c7320666f72205b757365723a6e616d655d206174205b736974653a6e616d655d202870656e64696e672061646d696e20617070726f76616c29223b), -('user_mail_status_activated_body', 0x733a3436313a225b757365723a6e616d655d2c0d0a0d0a596f7572206163636f756e74206174205b736974653a6e616d655d20686173206265656e206163746976617465642e0d0a0d0a596f75206d6179206e6f77206c6f6720696e20627920636c69636b696e672074686973206c696e6b206f7220636f7079696e6720616e642070617374696e6720697420696e746f20796f75722062726f777365723a0d0a0d0a5b757365723a6f6e652d74696d652d6c6f67696e2d75726c5d0d0a0d0a54686973206c696e6b2063616e206f6e6c792062652075736564206f6e636520746f206c6f6720696e20616e642077696c6c206c65616420796f7520746f2061207061676520776865726520796f752063616e2073657420796f75722070617373776f72642e0d0a0d0a41667465722073657474696e6720796f75722070617373776f72642c20796f752077696c6c2062652061626c6520746f206c6f6720696e206174205b736974653a6c6f67696e2d75726c5d20696e2074686520667574757265207573696e673a0d0a0d0a757365726e616d653a205b757365723a6e616d655d0d0a70617373776f72643a20596f75722070617373776f72640d0a0d0a2d2d20205b736974653a6e616d655d207465616d223b), -('user_mail_status_activated_notify', 0x693a313b), -('user_mail_status_activated_subject', 0x733a35373a224163636f756e742064657461696c7320666f72205b757365723a6e616d655d206174205b736974653a6e616d655d2028617070726f76656429223b), -('user_mail_status_blocked_body', 0x733a38353a225b757365723a6e616d655d2c0d0a0d0a596f7572206163636f756e74206f6e205b736974653a6e616d655d20686173206265656e20626c6f636b65642e0d0a0d0a2d2d20205b736974653a6e616d655d207465616d223b), -('user_mail_status_blocked_notify', 0x693a303b), -('user_mail_status_blocked_subject', 0x733a35363a224163636f756e742064657461696c7320666f72205b757365723a6e616d655d206174205b736974653a6e616d655d2028626c6f636b656429223b), -('user_mail_status_canceled_body', 0x733a38363a225b757365723a6e616d655d2c0d0a0d0a596f7572206163636f756e74206f6e205b736974653a6e616d655d20686173206265656e2063616e63656c65642e0d0a0d0a2d2d20205b736974653a6e616d655d207465616d223b), -('user_mail_status_canceled_notify', 0x693a303b), -('user_mail_status_canceled_subject', 0x733a35373a224163636f756e742064657461696c7320666f72205b757365723a6e616d655d206174205b736974653a6e616d655d202863616e63656c656429223b), -('user_pictures', 0x693a313b), -('user_picture_default', 0x733a34373a2273697465732f64656661756c742f66696c65732f70696374757265732f67656e657269632d6176617461722e6a7067223b), -('user_picture_dimensions', 0x733a393a22313032347831303234223b), -('user_picture_file_size', 0x733a333a22383030223b), -('user_picture_guidelines', 0x733a303a22223b), -('user_picture_path', 0x733a383a227069637475726573223b), -('user_picture_style', 0x733a393a227468756d626e61696c223b), -('user_register', 0x733a313a2232223b), -('user_signatures', 0x693a313b); - --- -------------------------------------------------------- - --- --- Δομή πίνακα για τον πίνακα `watchdog` --- - -CREATE TABLE IF NOT EXISTS `watchdog` ( +-- Table structure for table `watchdog` +-- + +DROP TABLE IF EXISTS `watchdog`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `watchdog` ( `wid` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique watchdog event ID.', `uid` int(11) NOT NULL DEFAULT '0' COMMENT 'The users.uid of the user who triggered the event.', `type` varchar(64) NOT NULL DEFAULT '' COMMENT 'Type of log message, for example "user" or "page not found."', @@ -5487,57 +2288,25 @@ CREATE TABLE IF NOT EXISTS `watchdog` ( KEY `type` (`type`), KEY `uid` (`uid`), KEY `severity` (`severity`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table that contains logs of all system events.' AUTO_INCREMENT=44 ; - --- --- Άδειασμα δεδομένων του πίνακα `watchdog` --- - -INSERT INTO `watchdog` (`wid`, `uid`, `type`, `message`, `variables`, `severity`, `link`, `location`, `referer`, `hostname`, `timestamp`) VALUES -(1, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037444), -(2, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037444), -(3, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037444), -(4, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037445), -(5, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037445), -(6, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037445), -(7, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037445), -(8, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037445), -(9, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037445), -(10, 0, 'access denied', 'user/1', 0x4e3b, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(11, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(12, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(13, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(14, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(15, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(16, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(17, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(18, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(19, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037446), -(20, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382037452), -(21, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user', '', '::1', 1382037458), -(22, 1, 'user', 'Session opened for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037464), -(23, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037467), -(24, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/admin/config?render=overlay', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382037472), -(25, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/admin/reports/status?render=overlay', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382037478), -(26, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/admin/reports/status/run-cron?destination=admin%2Freports%2Fstatus&render=overlay', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382037482), -(27, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/admin/reports/status?render=overlay', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382037485), -(28, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/admin/reports/status/run-cron?destination=admin%2Freports%2Fstatus&render=overlay', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382037488), -(29, 0, 'cron', 'Attempting to re-run cron while it is already running.', 0x613a303a7b7d, 4, '', 'http://localhost/mtt_themes/git/simplecorp/site/admin/reports/status?render=overlay', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382037491), -(30, 0, 'cron', 'Cron run completed.', 0x613a303a7b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382037496), -(31, 0, 'cron', 'Cron run completed.', 0x613a303a7b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/admin/reports/status/run-cron?render=overlay', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382037511), -(32, 1, 'user', 'Session closed for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/logout', 'http://localhost/mtt_themes/git/simplecorp/site/', '::1', 1382037741), -(33, 1, 'user', 'Session opened for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382038071), -(34, 0, 'cron', 'Cron run completed.', 0x613a303a7b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/admin/reports/status/run-cron?destination=admin%2Freports%2Fstatus&render=overlay', 'http://localhost/mtt_themes/git/simplecorp/site/', '::1', 1382038116), -(35, 1, 'user', 'Session closed for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/logout', 'http://localhost/mtt_themes/git/simplecorp/site/', '::1', 1382038154), -(36, 1, 'user', 'Session opened for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382040616), -(37, 0, 'cron', 'Cron run completed.', 0x613a303a7b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/admin/reports/status/run-cron?destination=admin%2Freports%2Fstatus&render=overlay', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382040642), -(38, 1, 'user', 'Session closed for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/logout', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382040683), -(39, 1, 'user', 'Session opened for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user', 'http://localhost/mtt_themes/git/simplecorp/site/user', '::1', 1382041155), -(40, 1, 'user', 'Session closed for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/logout', 'http://localhost/mtt_themes/git/simplecorp/site/user/1', '::1', 1382041198), -(41, 0, 'cron', 'Cron run completed.', 0x613a303a7b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/', 'http://localhost/mtt_themes/git/simplecorp/', '::1', 1382084586), -(42, 1, 'user', 'Session opened for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/blog?destination=blog', 'http://localhost/mtt_themes/git/simplecorp/site/blog', '::1', 1382084624), -(43, 1, 'user', 'Session closed for %name.', 0x613a313a7b733a353a22256e616d65223b733a353a2261646d696e223b7d, 5, '', 'http://localhost/mtt_themes/git/simplecorp/site/user/logout', 'http://localhost/mtt_themes/git/simplecorp/site/blog', '::1', 1382084842); +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table that contains logs of all system events.'; +/*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Dumping data for table `watchdog` +-- + +LOCK TABLES `watchdog` WRITE; +/*!40000 ALTER TABLE `watchdog` DISABLE KEYS */; +/*!40000 ALTER TABLE `watchdog` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-07-05 12:37:04 diff --git a/site/.editorconfig b/site/.editorconfig new file mode 100644 index 0000000..ccc6a28 --- /dev/null +++ b/site/.editorconfig @@ -0,0 +1,14 @@ +# Drupal editor configuration normalization +# @see http://editorconfig.org/ + +# This is the top-most .editorconfig file; do not search in parent directories. +root = true + +# All files. +[*] +end_of_line = LF +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/site/.htaccess b/site/.htaccess index 7ccb6a2..37fce10 100644 --- a/site/.htaccess +++ b/site/.htaccess @@ -3,8 +3,13 @@ # # Protect files and directories from prying eyes. - - Order allow,deny + + + Require all denied + + + Order allow,deny + # Don't show directory listings for URLs which map to a directory. @@ -80,7 +85,7 @@ DirectoryIndex index.php index.html index.htm # If you do not have mod_rewrite installed, you should remove these # directories from your webroot or otherwise protect them from being # downloaded. - RewriteRule "(^|/)\." - [F] + RewriteRule "/\.|^\.(?!well-known/)" - [F] # If your site can be accessed both with and without the 'www.' prefix, you # can use one of the following settings to redirect users to your preferred @@ -141,3 +146,9 @@ DirectoryIndex index.php index.html index.htm + +# Add headers to all responses. + + # Disable content sniffing, since it's an attack vector. + Header always set X-Content-Type-Options nosniff + diff --git a/site/CHANGELOG.txt b/site/CHANGELOG.txt index 464f5ef..0929559 100644 --- a/site/CHANGELOG.txt +++ b/site/CHANGELOG.txt @@ -1,4 +1,557 @@ +Drupal 7.59, 2018-04-25 +----------------------- +- Fixed security issues (remote code execution). See SA-CORE-2018-004. + +Drupal 7.58, 2018-03-28 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2018-002. + +Drupal 7.57, 2018-02-21 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2018-001. + +Drupal 7.56, 2017-06-21 +----------------------- +- Fixed security issues (access bypass). See SA-CORE-2017-003. + +Drupal 7.55, 2017-06-07 +----------------------- +- Fixed incompatibility with PHP versions 7.0.19 and 7.1.5 due to duplicate + DATE_RFC7231 definition. +- Made Drupal core pass all automated tests on PHP 7.1. +- Allowed services such as Let's Encrypt to work with Drupal on Apache, by + making Drupal's .htaccess file allow access to the .well-known directory + defined by RFC 5785. +- Made new Drupal sites work correctly on Apache 2.4 when the mod_access_compat + Apache module is disabled. +- Fixed Drupal's URL-generating functions to always encode '[' and ']' so that + the URLs will pass HTML5 validation. +- Various additional bug fixes. +- Various API documentation improvements. +- Additional automated test coverage. + +Drupal 7.54, 2017-02-01 +----------------------- +- Modules are now able to define theme engines (API addition: + https://www.drupal.org/node/2826480). +- Logging of searches can now be disabled (new option in the administrative + interface). +- Added menu tree render structure to (pre-)process hooks for theme_menu_tree() + (API addition: https://www.drupal.org/node/2827134). +- Added new function for determining whether an HTTPS request is being served + (API addition: https://www.drupal.org/node/2824590). +- Fixed incorrect default value for short and medium date formats on the date + type configuration page. +- File validation error message is now removed after subsequent upload of valid + file. +- Numerous bug fixes. +- Numerous API documentation improvements. +- Additional performance improvements. +- Additional automated test coverage. + +Drupal 7.53, 2016-12-07 +----------------------- +- Fixed drag and drop support on newer Chrome/IE 11+ versions after 7.51 update + when jQuery is updated to 1.7-1.11.0. + +Drupal 7.52, 2016-11-16 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2016-005. + +Drupal 7.51, 2016-10-05 +----------------------- +- The Update module now also checks for updates to a disabled theme that is + used as an admin theme. +- Exceptions thrown in dblog_watchdog() are now caught and ignored. +- Clarified the warning that appears when modules are missing or have moved. +- Log messages are now XSS filtered on display. +- Draggable tables now work on touch screen devices. +- Added a setting for allowing double underscores in CSS identifiers + (https://www.drupal.org/node/2810369). +- If a user navigates away from a page while an Ajax request is running they + will no longer get an error message saying "An Ajax HTTP request terminated + abnormally". +- The system_region_list() API function now takes an optional third parameter + which allows region name translations to be skipped when they are not needed + (API addition: https://www.drupal.org/node/2810365). +- Numerous performance improvements. +- Numerous bug fixes. +- Numerous API documentation improvements. +- Additional automated test coverage. + +Drupal 7.50, 2016-07-07 +----------------------- +- Added a new "administer fields" permission for trusted users, which is + required in addition to other permissions to use the field UI + (https://www.drupal.org/node/2483307). +- Added clickjacking protection to Drupal core by setting the X-Frame-Options + header to SAMEORIGIN by default (https://www.drupal.org/node/2735873). +- Added support for full UTF-8 (emojis, Asian symbols, mathematical symbols) on + MySQL and other database drivers when the site and database are configured to + allow it (https://www.drupal.org/node/2761183). +- Improved performance by avoiding a re-scan of directories when a file is + missing; instead, trigger a PHP warning (minor API change: + https://www.drupal.org/node/2581445). +- Made it possible to use any PHP callable in Ajax form callbacks, form API + form-building functions, and form API wrapper callbacks (API addition: + https://www.drupal.org/node/2761169). +- Fixed that following a password reset link while logged in leaves users unable + to change their password (minor user interface change: + https://www.drupal.org/node/2759023). +- Implemented various fixes for automated test failures on PHP 5.4+ and PHP 7. + Drupal core automated tests now pass in these environments. +- Improved support for PHP 7 by fixing various problems. +- Fixed various bugs with PHP 5.5+ imagerotate(), including when incorrect + color indices are passed in. +- Fixed a regression introduced in Drupal 7.43 that allowed files uploaded by + anonymous users to be lost after form validation errors, and that also caused + regressions with certain contributed modules. +- Fixed a regression introduced in Drupal 7.36 which caused the default value + of hidden textarea fields to be ignored. +- Fixed robots.txt to allow search engines to access CSS, JavaScript and image + files. +- Changed wording on the Update Manager settings page to clarify that the + option to check for disabled module updates also applies to uninstalled + modules (administrative-facing translatable string change). +- Changed the help text when editing menu links and configuring URL redirect + actions so that it does not reference "Drupal" or the drupal.org website + (administrative-facing translatable string change). +- Fixed the locale safety check that is used to ensure that translations are + safe to allow for tokens in the href/src attributes of translated strings. +- Fixed that URL generation only works on port 80 when using domain based + language negotation. +- Made method="get" forms work inside the administrative overlay. The fix adds + a new hidden field to these forms when they appear inside the overlay (minor + data structure change). +- Increased maxlength of menu link title input fields in the node form and + menu link form from 128 to 255 characters. +- Removed meaningless post-check=0 and pre-check=0 cache control headers from + Drupal HTTP responses. +- Added a .editorconfig file to auto-configure editors that support it. +- Added --directory option to run-tests.sh for easier test discovery of all + tests within a project. +- Made run-tests.sh exit with a failure code when there are test fails or + problems running the script. +- Fixed that cookies from previous tests are still present when a new test + starts in DrupalWebTestCase. +- Improved performance of queries on the {authmap} database table. +- Fixed handling of missing files and functions inside the registry. +- Fixed Ajax handling for tableselect form elements that use checkboxes. +- Fixed a bug which caused ip_address() to return nothing when the client IP + address and proxy IP address are the same. +- Added a new option to format_xml_elements() to allow for already encoded + values. +- Changed the {history} table's node ID field to be an unsigned integer, to + match the same field in the {node} table and to prevent errors with very + large node IDs. +- Added an explicit page callback to the "admin/people/create" menu item in the + User module (minor data structure change). Previously this automatically + inherited the page callback from the parent "admin/people" menu item, which + broke contributed modules that override the "admin/people" page. +- Numerous small bug fixes. +- Numerous API documentation improvements. +- Additional automated test coverage. + +Drupal 7.44, 2016-06-15 +----------------------- +- Fixed security issues (privilege escalation). See SA-CORE-2016-002. + +Drupal 7.43, 2016-02-24 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2016-001. + +Drupal 7.42, 2016-02-03 +----------------------- +- Stopped invoking hook_flush_caches() on every cron run, since some modules + use that hook for expensive operations that are only needed on cache clears. +- Changed the default .htaccess and web.config to block Composer-related files. +- Added static caching to module_load_include() to improve performance. +- Fixed double-encoding bugs in select field widgets provided by the Options + module. The fix deprecates the 'strip_tags' property on option widgets and + replaces it with a new 'strip_tags_and_unescape' property (minor data + structure change). +- Improved MySQL 5.7 support by changing the MySQL database driver to stop + using the ANSI SQL mode alias, which has different meanings for different + MySQL versions. +- Fixed a regression introduced in Drupal 7.39 which prevented autocomplete + functionality from working on servers that are not configured to + automatically recognize index.php. +- Updated the Archive_Tar PEAR package to the latest 1.4.0 release, to fix bugs + with tar file handling on various operating systems. +- Fixed fatal errors on node preview when a field is displayed in the node + teaser but hidden in the full node view. The fix removes a + field_attach_prepare_view() call from the node_preview() function since it is + redundant with one in the node preview theme layer. +- Improved the description of the "Trimmed" format option on text fields + (translatable string change, and minor UI and data structure change). +- Numerous small bug fixes. +- Numerous API documentation improvements. +- Additional automated test coverage. + +Drupal 7.41, 2015-10-21 +----------------------- +- Fixed security issues (open redirect). See SA-CORE-2015-004. + +Drupal 7.40, 2015-10-14 +----------------------- +- Made Drupal's code for parsing .info files run much faster and use much less + memory. +- Prevented drupal_http_request() from returning an error when it receives a + 201 through 206 HTTP status code. +- Added support for autoloading traits via the registry on sites running PHP + 5.4 or higher. +- Allowed the user-picture.tpl.php theme template to have HTML classes besides + the default "user-picture" class printed in it (markup change). +- Fixed the URL text filter to convert e-mail addresses with plus signs into + mailto: links. +- Added alternate text to file icons displayed by the File module, to improve + accessibility (string change, and minor API addition to theme_file_icon()). +- Changed one-time login link failure messages to be displayed as errors or + warnings as appropriate, rather than as regular status messages (minor UI + change and data structure change). +- Changed the default settings.php configuration to exclude private files from + the "404_fast_paths" behavior. +- Changed the page that displays filter tips for a particular text format, for + example filter/tips/full_html, to return "page not found" or "access denied" + if the format does not exist or the user does not have access to it. This + change adds a new menu item to the Filter module's hook_menu() entry (minor + data structure change). +- Added a new hook, hook_block_cid_parts_alter(), to allow modules to alter the + cache keys used for caching a particular block. +- Made drupal_set_message() display and return messages when "0" is passed in + as the message to set. +- Fixed non-functional "Files displayed by default" setting on file fields. +- The "worker callback" provided in hook_cron_queue_info() and the "finished" + callback specified during batch processing can now be any PHP callable + instead of just functions. +- Prevented drupal_set_time_limit() from decreasing the time limit in the case + where the PHP maximum execution time is already unlimited. +- Changed the default thousand marker for numeric fields from a space ("1 000") + to nothing ("1000") (minor UI change: https://www.drupal.org/node/1388376). +- Prevented malformed theme .info files (without a "name" key) from causing + exceptions during menu rebuilds. If an .info file without a "name" key is + found in a module or theme directory, Drupal will now use the module or + theme's machine name as the display name instead. +- Made the format column in the {date_format_locale} database table + case-sensitive, to match the equivalent column in the {date_formats} table. +- Fixed a bug in the Statistics module that caused JavaScript files attached to + a node while it is being viewed to be omitted from the page. +- Added an optional 'project:' prefix that can be added to dependencies in a + module's .info file to indicate which project the dependency resides in (API + addition: https://www.drupal.org/node/2299747). +- Fixed various bugs that occurred after hooks were invoked early in the Drupal + bootstrap and that caused module_implements() and drupal_alter() to cache an + incomplete set of hook implementations for later use. +- Set the X-Content-Type-Options header to "nosniff" when possible, to prevent + certain web browsers from picking an unsafe MIME type. +- Prevented the database API from executing multiple queries at once on MySQL, + if the site's PHP version is new enough to do so. This is a secondary defense + against SQL injection (API change: https://www.drupal.org/node/2463973). +- Fixed a bug in the Drupal 6 to Drupal 7 upgrade path which caused the upgrade + to fail when there were multiple file records pointing to the same file. +- Numerous small bug fixes. +- Numerous API documentation improvements. +- Additional automated test coverage. + +Drupal 7.39, 2015-08-19 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2015-003. + +Drupal 7.38, 2015-06-17 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2015-002. + +Drupal 7.37, 2015-05-07 +----------------------- +- Fixed a regression in Drupal 7.36 which caused certain kinds of content types + to become disabled if they were defined by a no-longer-enabled module. +- Removed a confusing description regarding automatic time zone detection from + the user account form (minor UI and data structure change). +- Allowed custom HTML tags with a dash in the name to pass through filter_xss() + when specified in the list of allowed tags. +- Allowed hook_field_schema() implementations to specify indexes for fields + based on a fixed-length column prefix (rather than the entire column), as was + already allowed in hook_schema() implementations. +- Fixed PDO exceptions on PostgreSQL when accessing invalid entity URLs. +- Added a sites/all/libraries folder to the codebase, with instructions for + using it. +- Added a description to the "Administer text formats and filters" permission + on the Permissions page (string change). +- Numerous small bug fixes. +- Numerous API documentation improvements. +- Additional automated test coverage. + +Drupal 7.36, 2015-04-01 +----------------------- +- Added a 'file_public_schema' variable which allows modules that define + publicly-accessible streams in hook_stream_wrappers() to bypass file download + access checks when processing managed file upload fields. +- Fixed a bug that caused database query tags not to be added to search-related + database queries under many circumstances, and which prevented the + corresponding hook_query_TAG_alter() implementations from being called. +- Fixed the "for" attribute on managed file upload field labels to improve + accessibility (minor markup change). +- Added a 'javascript_always_use_jquery' variable which can be set to FALSE by + sites that may not need jQuery loaded on all pages, and a 'requires_jquery' + option to drupal_add_js() which modules can set to FALSE when adding + JavaScript files that have no dependency on jQuery (API addition: + https://www.drupal.org/node/2462717). +- Fixed incorrect foreign keys in the User module's role_permission and + users_roles database tables. +- Changed permission descriptions throughout Drupal core to consistently link + to relevant administrative pages, regardless of whether the user viewing the + Permissions page can view the page being linked to (minor UI change). +- Fixed the drupal_add_region_content() function so that it actually adds + content to the page. +- Added an 'image_suppress_itok_output' variable to allow sites already using + the existing 'image_allow_insecure_derivatives' variable to also prevent + security tokens from appearing in image derivative URLs. +- Fixed double-escaping of theme names in the Block module administrative + interface (minor string change). +- Added basic support for Xdebug when running automated tests. +- Fixed a bug which caused previewing a node to remove elements from the node + being edited. With this fix, calling node_preview() will no longer modify the + passed-in node object (minor API change). +- Added a user_has_role() function to check whether a user has a particular + role (API addition: https://www.drupal.org/node/2462411). +- Fixed installation failures when an opcode cache is enabled. +- Fixed a bug in the Drupal 6 to Drupal 7 upgrade path which caused private + files to be inaccessible. +- Fixed a bug in the Drupal 6 to Drupal 7 upgrade path which caused user + pictures to be lost. +- Fixed missing language code in hook_field_attach_view_alter() when it is + invoked from field_view_field(). +- Stopped sending ETag and Last-Modified headers for uncached page requests, + since they break caching for certain Varnish and Nginx configurations. +- Changed the Simpletest module to allow PSR-4 test classes to be used in + Drupal 7. +- Fixed a fatal error that occurred when using the Comment module's "Unpublish + comment containing keyword(s)" action. +- Changed the "lang" attribute on language links to "xml:lang" so it validates + as XHTML (minor markup change). +- Prevented the form API from allowing arrays to be submitted for various form + elements, such as textfields, textareas, and password fields (API change: + https://www.drupal.org/node/2462723). +- Fixed a bug in the Contact module which caused the global user object to have + the incorrect name and e-mail address during the remainder of the page + request after the contact form is submitted. +- Numerous small bug fixes. +- Numerous API documentation improvements. +- Additional automated test coverage. + +Drupal 7.35, 2015-03-18 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2015-001. + +Drupal 7.34, 2014-11-19 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2014-006. + +Drupal 7.33, 2014-11-07 +----------------------- +- Began storing the file modification time of each module and theme in the + {system} database table so that contributed modules can use it to identify + recently changed modules and themes (minor data structure change to the + return value of system_get_info() and other related functions). +- Added a "Did you mean?" feature to the run-tests.sh script for running + automated tests from the command line, to help developers who are attempting + to run a particular test class or group. +- Changed the date format used in various HTTP headers output by Drupal core + from RFC 1123 format to RFC 7231 format. +- Added a "block_cache_bypass_node_grants" variable to allow sites which have + node access modules enabled to use the block cache if desired (API addition). +- Made image derivative generation HTTP requests return a 404 error (rather + than a 500 error) when the source image does not exist. +- Fixed a bug which caused user pictures to be removed from the user object + after saving, and resulted in data loss if the user account was subsequently + re-saved. +- Fixed a bug in which field_has_data() did not return TRUE for fields that + only had data in older entity revisions, leading to loss of the field's data + when the field configuration was edited. +- Fixed a bug which caused the Ajax progress throbber to appear misaligned in + many situatons (minor styling change). +- Prevented the Bartik theme from lower-casing the "Permalink" link on + comments, for improved multilingual support (minor UI change). +- Added a "preferred_menu_links" tag to the database query that is used by + menu_link_get_preferred() to find the preferred menu link for a given path, + to make it easier to alter. +- Increased the maximum allowed length of block titles to 255 characters + (database schema change to the {block} table). +- Removed the Field module's field_modules_uninstalled() function, since it did + not do anything when it was invoked. +- Added a "theme_hook_original" variable to templates and theme functions and + an optional sitewide theme debug mode, to provide contextual information in + the page's HTML to theme developers. The theme debug mode is based on the one + used with Twig in Drupal 8 and can be accessed by setting the "theme_debug" + variable to TRUE (API addition). +- Added an entity_view_mode_prepare() API function to allow entity-defining + modules to properly invoke hook_entity_view_mode_alter(), and used it + throughout Drupal core to fix bugs with the invocation of that hook (API + change: https://www.drupal.org/node/2369141). +- Security improvement: Made the database API's orderBy() method sanitize the + sort direction ("ASC" or "DESC") for queries built with db_select(), so that + calling code does not have to. +- Changed the RDF module to consistently output RDF metadata for nodes and + comments near where the node is rendered in the HTML (minor markup and data + structure change). +- Added an HTML class to RDFa metatags throughout Drupal to prevent them from + accidentally affecting the site appearance (minor markup change). +- Fixed a bug in the Unicode requirements check which prevented installing + Drupal on PHP 5.6. +- Fixed a bug which caused drupal_get_bootstrap_phase() to abort the bootstrap + when called early in the page request. +- Renamed the "Search result" view mode to "Search result highlighting input" + to better reflect how it is used (UI change). +- Improved database queries generated by EntityFieldQuery in the case where + delta or language condition groups are used, to reduce the number of INNER + JOINs (this is a minor data structure change affecting code which implements + hook_query_alter() on these queries). +- Removed special-case behavior for file uploads which allowed user #1 to + bypass maximum file size and user quota limits. +- Numerous small bug fixes. +- Numerous API documentation improvements. +- Additional automated test coverage. + +Drupal 7.32, 2014-10-15 +----------------------- +- Fixed security issues (SQL injection). See SA-CORE-2014-005. + +Drupal 7.31, 2014-08-06 +----------------------- +- Fixed security issues (denial of service). See SA-CORE-2014-004. + +Drupal 7.30, 2014-07-24 +----------------------- +- Fixed a regression introduced in Drupal 7.29 that caused files or images + attached to taxonomy terms to be deleted when the taxonomy term was edited + and resaved (and other related bugs with contributed and custom modules). +- Added a warning on the permissions page to recommend restricting access to + the "View site reports" permission to trusted administrators. See + DRUPAL-PSA-2014-002. +- Numerous API documentation improvements. +- Additional automated test coverage. + +Drupal 7.29, 2014-07-16 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2014-003. + +Drupal 7.28, 2014-05-08 +----------------------- +- Fixed a regression introduced in Drupal 7.27 that caused JavaScript to break + on older browsers (such as Internet Explorer 8 and earlier) when Ajax was + used. +- Increased the timeout used by the Update Manager module when it fetches data + from drupal.org (from 5 seconds to 30 seconds), to work around a problem + which causes incomplete information about security updates to be presented to + site administrators. This fix may lead to a performance slowdown on the + Update Manager administration pages, when installing Drupal distributions, + and (for sites that use the automated cron feature) on occasional page loads + by site visitors. +- Fixed the behavior of the token system's "[node:summary]" token when the body + field does not have a manual summary. +- Changed the behavior of db_query_temporary() so that it works on SELECT + queries even when they have leading comments/whitespace. A side effect of + this fix is that db_query_temporary() will now fail with an error if it is + ever used on non-SELECT queries. +- Added a "node_admin_filter" tag to the database query used to build the list + of nodes on the content administration page, to make it easier to alter. +- Made the cron queue system log any exceptions that are thrown while an item + in the queue is being processed, rather than stopping the entire PHP request. +- Improved screen reader support by adding an aria-live HTML attribute to file + upload fields when there is an error uploading the file (minor markup + change). +- Made the pager on the Tracker module listing pages show the same number of + items as other pagers throughout Drupal core (minor UI change). +- Fixed a bug which caused caches not to be properly cleared when a file entity + was saved or deleted. +- Added several missing countries to the default list returned by + country_get_list() (string change). +- Replaced the term "weight" with "influence" in the content ranking settings + for search, and added help text for administrators (string change). +- Fixed untranslatable text strings in the administrative interface for the + "Crop" effect provided by the Image module (minor string change). +- Fixed a bug in the Taxonomy module update function introduced in Drupal 7.26 + that caused memory and CPU problems on sites with very large numbers of + unpublished nodes. +- Numerous small bug fixes. +- Numerous API documentation improvements. +- Additional automated test coverage. + +Drupal 7.27, 2014-04-16 +----------------------- +- Fixed security issues (information disclosure). See SA-CORE-2014-002. + +Drupal 7.26, 2014-01-15 +----------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2014-001. + +Drupal 7.25, 2014-01-02 +----------------------- +- Fixed a bug in node_save() which prevented the saved node from being updated + in hook_node_insert() and other similar hooks. +- Added a meta tag to install.php to prevent it from being indexed by search + engines even when Drupal is installed in a subfolder (minor markup change). +- Fixed a bug in the database API that caused frequent deadlock errors when + running merge queries on some servers. +- Performance improvement: Prevented block rehashing from writing blocks to the + database on every cache clear and cron run when the blocks have not changed. + This fix results in an extra 'saved' key which is added and set to TRUE for + each block returned by _block_rehash() that actually is saved to the database + (data structure change). +- Added an optional 'skip on cron' parameter to hook_cron_queue_info() to allow + queues to avoid being automatically processed on cron runs (API addition). +- Fixed a bug which caused hook_block_view_MODULE_DELTA_alter() to never be + invoked if the block delta had a hyphen in it. To implement the hook when the + block delta has a hyphen, modules should now replace hyphens with underscores + when constructing the function name for the hook implementation. +- Fixed a bug which caused cached pages to sometimes be sent to the browser + with incorrect compression. The fix adds a new 'page_compressed' key to the + $cache->data array returned by drupal_page_get_cache() (minor data structure + change). +- Fixed broken tests on PHP 5.5. +- Made the File and Image modules more robust when saving entities that have + deleted files attached. The code in file_field_presave() will now remove the + record of the deleted file from the entity before saving (minor data + structure change). +- Standardized menu callback functions throughout Drupal core to return + MENU_NOT_FOUND and MENU_ACCESS_DENIED rather than printing their own "page + not found" or "access denied" pages (minor API change in the return value of + these functions under some circumstances). +- Fixed a bug in which caches were not properly cleared when a node was deleted + via the administrative interface. +- Changed the Bartik theme to render content contained in
                  ,  and
                  +  similar tags in a larger font size, so it is easier to read.
                  +- Fixed a bug in the Search module that caused exceptions to be thrown during
                  +  searches if the server was not configured to represent decimal points as a
                  +  period.
                  +- Fixed a regression in the Image module that made image_style_url() not work
                  +  when a relative path (rather than a complete file URI) was passed to it.
                  +- Added an optional feature to the Statistics module to allow node views to be
                  +  tracked by Ajax requests rather than during the server-side generation of the
                  +  page. This allows the node counter to work on sites that use external page
                  +  caches (string change and new administrative option:
                  +  https://drupal.org/node/2164069).
                  +- Added a link to the drupal.org documentation page for cron to the Cron
                  +  settings page (string change).
                  +- Added a 'drupal_anonymous_user_object' variable to allow the anonymous user
                  +  object returned by drupal_anonymous_user() to be overridden with a classed
                  +  object (API addition).
                  +- Changed the database API to allow inserts based on a SELECT * query to work
                  +  correctly.
                  +- Changed the database schema of the {file_managed} table to allow Drupal to
                  +  manage files larger than 4 GB.
                  +- Changed the File module's hook_field_load() implementation to prevent file
                  +  entity properties which have the same name as file or image field properties
                  +  from overwriting the field properties (minor API change).
                  +- Numerous small bug fixes.
                  +- Numerous API documentation improvements.
                  +- Additional automated test coverage.
                  +
                  +Drupal 7.24, 2013-11-20
                  +-----------------------
                  +- Fixed security issues (multiple vulnerabilities), see SA-CORE-2013-003.
                  +
                   Drupal 7.23, 2013-08-07
                   -----------------------
                   - Fixed a fatal error on PostgreSQL databases when updating the Taxonomy module
                  @@ -250,8 +803,8 @@ Drupal 7.15, 2012-08-01
                   - Numerous API documentation improvements.
                   - Additional automated test coverage.
                   
                  -Drupal 7.14 2012-05-02
                  -----------------------
                  +Drupal 7.14, 2012-05-02
                  +-----------------------
                   - Fixed "integrity constraint" fatal errors when rebuilding registry.
                   - Fixed custom logo and favicon functionality referencing incorrect paths.
                   - Fixed DB Case Sensitivity: Allow BINARY attribute in MySQL.
                  @@ -299,12 +852,12 @@ Drupal 7.14 2012-05-02
                     - system_update_7061() converts filepaths too aggressively.
                     - Trigger upgrade path: Node triggers removed when upgrading to 7-x from 6.25.
                   
                  -Drupal 7.13 2012-05-02
                  -----------------------
                  +Drupal 7.13, 2012-05-02
                  +-----------------------
                   - Fixed security issues (Multiple vulnerabilities), see SA-CORE-2012-002.
                   
                   Drupal 7.12, 2012-02-01
                  -----------------------
                  +-----------------------
                   - Fixed bug preventing custom menus from receiving an active trail.
                   - Fixed hook_field_delete() no longer invoked during field_purge_data().
                   - Fixed bug causing entity info cache to not be cleared with the rest of caches.
                  @@ -338,11 +891,11 @@ Drupal 7.12, 2012-02-01
                     cache.
                   
                   Drupal 7.11, 2012-02-01
                  -----------------------
                  +-----------------------
                   - Fixed security issues (Multiple vulnerabilities), see SA-CORE-2012-001.
                   
                   Drupal 7.10, 2011-12-05
                  -----------------------
                  +-----------------------
                   - Fixed Content-Language HTTP header to not cause issues with Drush 5.x.
                   - Reduce memory usage of theme registry (performance).
                   - Fixed PECL upload progress bar for FileField
                  @@ -695,7 +1248,7 @@ Drupal 7.0, 2011-01-05
                         requests.
                   
                   Drupal 6.23-dev, xxxx-xx-xx (development release)
                  ------------------------
                  +---------------------------
                   
                   Drupal 6.22, 2011-05-25
                   -----------------------
                  @@ -705,25 +1258,25 @@ Drupal 6.22, 2011-05-25
                   - Fixed a variety of other bugs.
                   
                   Drupal 6.21, 2011-05-25
                  -----------------------
                  +-----------------------
                   - Fixed security issues (Cross site scripting), see SA-CORE-2011-001.
                   
                   Drupal 6.20, 2010-12-15
                  -----------------------
                  +-----------------------
                   - Fixed a variety of small bugs, improved code documentation.
                   
                   Drupal 6.19, 2010-08-11
                  -----------------------
                  +-----------------------
                   - Fixed a variety of small bugs, improved code documentation.
                   
                   Drupal 6.18, 2010-08-11
                  -----------------------
                  +-----------------------
                   - Fixed security issues (OpenID authentication bypass, File download access
                     bypass, Comment unpublishing bypass, Actions cross site scripting),
                     see SA-CORE-2010-002.
                   
                   Drupal 6.17, 2010-06-02
                  -----------------------
                  +-----------------------
                   - Improved PostgreSQL compatibility
                   - Better PHP 5.3 and PHP 4 compatibility
                   - Better browser compatibility of CSS and JS aggregation
                  @@ -732,7 +1285,7 @@ Drupal 6.17, 2010-06-02
                   - Fixed a variety of other bugs.
                   
                   Drupal 6.16, 2010-03-03
                  -----------------------
                  +-----------------------
                   - Fixed security issues (Installation cross site scripting, Open redirection,
                     Locale module cross site scripting, Blocked user session regeneration),
                     see SA-CORE-2010-001.
                  @@ -744,12 +1297,12 @@ Drupal 6.16, 2010-03-03
                   - Fixed a variety of other bugs.
                   
                   Drupal 6.15, 2009-12-16
                  -----------------------
                  +-----------------------
                   - Fixed security issues (Cross site scripting), see SA-CORE-2009-009.
                   - Fixed a variety of other bugs.
                   
                   Drupal 6.14, 2009-09-16
                  -----------------------
                  +-----------------------
                   - Fixed security issues (OpenID association cross site request forgeries,
                     OpenID impersonation and File upload), see SA-CORE-2009-008.
                   - Changed the system modules page to not run all cache rebuilds; use the
                  @@ -758,18 +1311,18 @@ Drupal 6.14, 2009-09-16
                   - Fixed a variety of small bugs.
                   
                   Drupal 6.13, 2009-07-01
                  -----------------------
                  +-----------------------
                   - Fixed security issues (Cross site scripting, Input format access bypass and
                     Password leakage in URL), see SA-CORE-2009-007.
                   - Fixed a variety of small bugs.
                   
                   Drupal 6.12, 2009-05-13
                  -----------------------
                  +-----------------------
                   - Fixed security issues (Cross site scripting), see SA-CORE-2009-006.
                   - Fixed a variety of small bugs.
                   
                   Drupal 6.11, 2009-04-29
                  -----------------------
                  +-----------------------
                   - Fixed security issues (Cross site scripting and limited information
                     disclosure), see SA-CORE-2009-005
                   - Fixed performance issues with the menu router cache, the update
                  @@ -777,7 +1330,7 @@ Drupal 6.11, 2009-04-29
                   - Fixed a variety of small bugs.
                   
                   Drupal 6.10, 2009-02-25
                  -----------------------
                  +-----------------------
                   - Fixed a security issue, (Local file inclusion on Windows),
                     see SA-CORE-2009-003
                   - Fixed node_feed() so custom fields can show up in RSS feeds.
                  @@ -1173,7 +1726,7 @@ Drupal 4.7.9, 2007-12-05
                   - fixed a security issue (SQL injection), see SA-2007-031
                   
                   Drupal 4.7.8, 2007-10-17
                  -----------------------
                  +------------------------
                   - fixed a security issue (HTTP response splitting), see SA-2007-024
                   - fixed a security issue (Cross site scripting via uploads), see SA-2007-026
                   - fixed a security issue (API handling of unpublished comment), see SA-2007-030
                  @@ -1286,7 +1839,7 @@ Drupal 4.6.11, 2007-01-05
                   - Fixed security issue (DoS), see SA-2007-002
                   
                   Drupal 4.6.10, 2006-10-18
                  -------------------------
                  +-------------------------
                   - Fixed security issue (XSS), see SA-2006-024
                   - Fixed security issue (CSRF), see SA-2006-025
                   - Fixed security issue (Form action attribute injection), see SA-2006-026
                  diff --git a/site/COPYRIGHT.txt b/site/COPYRIGHT.txt
                  index a2a6511..dc8a855 100644
                  --- a/site/COPYRIGHT.txt
                  +++ b/site/COPYRIGHT.txt
                  @@ -1,4 +1,4 @@
                  -All Drupal code is Copyright 2001 - 2012 by the original authors.
                  +All Drupal code is Copyright 2001 - 2013 by the original authors.
                   
                   This program is free software; you can redistribute it and/or modify
                   it under the terms of the GNU General Public License as published by
                  diff --git a/site/INSTALL.mysql.txt b/site/INSTALL.mysql.txt
                  index bee5811..95a8734 100644
                  --- a/site/INSTALL.mysql.txt
                  +++ b/site/INSTALL.mysql.txt
                  @@ -20,18 +20,21 @@ initial database files. Next you must log in and set the access database rights:
                   Again, you will be asked for the 'username' database password. At the MySQL
                   prompt, enter the following command:
                   
                  -  GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
                  -  ON databasename.*
                  +  GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
                  +  CREATE TEMPORARY TABLES ON databasename.*
                     TO 'username'@'localhost' IDENTIFIED BY 'password';
                   
                  -where
                  +where:
                   
                    'databasename' is the name of your database
                  - 'username@localhost' is the username of your MySQL account
                  + 'username' is the username of your MySQL account
                  + 'localhost' is the web server host where Drupal is installed
                    'password' is the password required for that username
                   
                  -Note: Unless your database user has all of the privileges listed above, you will
                  -not be able to run Drupal.
                  +Note: Unless the database user/host combination for your Drupal installation
                  +has all of the privileges listed above (except possibly CREATE TEMPORARY TABLES,
                  +which is currently only used by Drupal core automated tests and some
                  +contributed modules), you will not be able to install or run Drupal.
                   
                   If successful, MySQL will reply with:
                   
                  diff --git a/site/INSTALL.txt b/site/INSTALL.txt
                  index c3a26ad..e00c8ba 100644
                  --- a/site/INSTALL.txt
                  +++ b/site/INSTALL.txt
                  @@ -20,8 +20,10 @@ Drupal requires:
                     - MySQL 5.0.15 (or greater) (http://www.mysql.com/).
                     - MariaDB 5.1.44 (or greater) (http://mariadb.org/). MariaDB is a fully
                       compatible drop-in replacement for MySQL.
                  +  - Percona Server 5.1.70 (or greater) (http://www.percona.com/). Percona
                  +    Server is a backwards-compatible replacement for MySQL.
                     - PostgreSQL 8.3 (or greater) (http://www.postgresql.org/).
                  -  - SQLite 3.4.2 (or greater) (http://www.sqlite.org/).
                  +  - SQLite 3.3.7 (or greater) (http://www.sqlite.org/).
                   
                   For more detailed information about Drupal requirements, including a list of
                   PHP extensions and configurations that are required, see "System requirements"
                  diff --git a/site/MAINTAINERS.txt b/site/MAINTAINERS.txt
                  index 6171566..5603a43 100644
                  --- a/site/MAINTAINERS.txt
                  +++ b/site/MAINTAINERS.txt
                  @@ -1,7 +1,8 @@
                   
                   Drupal core is built and maintained by the Drupal project community. Everyone is
                   encouraged to submit issues and changes (patches) to improve Drupal, and to
                  -contribute in other ways -- see http://drupal.org/contribute to find out how.
                  +contribute in other ways -- see https://www.drupal.org/contribute to find out
                  +how.
                   
                   Branch maintainers
                   ------------------
                  @@ -9,150 +10,155 @@ Branch maintainers
                   The Drupal Core branch maintainers oversee the development of Drupal as a whole.
                   The branch maintainers for Drupal 7 are:
                   
                  -- Dries Buytaert 'dries' http://drupal.org/user/1
                  -- Angela Byron 'webchick' http://drupal.org/user/24967
                  -- David Rothstein 'David_Rothstein' http://drupal.org/user/124982
                  +- Dries Buytaert 'dries' https://www.drupal.org/u/dries
                  +- Angela Byron 'webchick' https://www.drupal.org/u/webchick
                  +- Fabian Franz 'Fabianx' https://www.drupal.org/u/fabianx
                  +- David Rothstein 'David_Rothstein' https://www.drupal.org/u/david_rothstein
                  +- Stefan Ruijsenaars 'stefan.r' https://www.drupal.org/u/stefanr-0
                   
                   
                   Component maintainers
                   ---------------------
                   
                   The Drupal Core component maintainers oversee the development of Drupal
                  -subsystems. See http://drupal.org/contribute/core-maintainers for more
                  +subsystems. See https://www.drupal.org/contribute/core-maintainers for more
                   information on their responsibilities, and to find out how to become a component
                   maintainer. Current component maintainers for Drupal 7:
                   
                   Ajax system
                  -- Alex Bronstein 'effulgentsia' http://drupal.org/user/78040
                  -- Earl Miles 'merlinofchaos' http://drupal.org/user/26979
                  +- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
                  +- Earl Miles 'merlinofchaos' https://www.drupal.org/u/merlinofchaos
                   
                   Base system
                  -- Károly Négyesi 'chx' http://drupal.org/user/9446
                  -- Damien Tournoud 'DamZ' http://drupal.org/user/22211
                  -- Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
                  +- Damien Tournoud 'DamZ' https://www.drupal.org/u/damien-tournoud
                  +- Moshe Weitzman 'moshe weitzman' https://www.drupal.org/u/moshe-weitzman
                   
                   Batch system
                  -- Yves Chedemois 'yched' http://drupal.org/user/39567
                  +- Yves Chedemois 'yched' https://www.drupal.org/u/yched
                   
                   Cache system
                  -- Damien Tournoud 'DamZ' http://drupal.org/user/22211
                  -- Nathaniel Catchpole 'catch' http://drupal.org/user/35733
                  +- Damien Tournoud 'DamZ' https://www.drupal.org/u/damien-tournoud
                  +- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
                   
                   Cron system
                  -- Károly Négyesi 'chx' http://drupal.org/user/9446
                  -- Derek Wright 'dww' http://drupal.org/user/46549
                  +- Derek Wright 'dww' https://www.drupal.org/u/dww
                   
                   Database system
                  -- Larry Garfield 'Crell' http://drupal.org/user/26398
                  +- Larry Garfield 'Crell' https://www.drupal.org/u/crell
                   
                     - MySQL driver
                  -    - Larry Garfield 'Crell' http://drupal.org/user/26398
                  -    - David Strauss 'David Strauss' http://drupal.org/user/93254
                  +    - Larry Garfield 'Crell' https://www.drupal.org/u/crell
                  +    - David Strauss 'David Strauss' https://www.drupal.org/u/david-strauss
                   
                     - PostgreSQL driver
                  -    - Damien Tournoud 'DamZ' http://drupal.org/user/22211
                  -    - Josh Waihi 'fiasco' http://drupal.org/user/188162
                  +    - Damien Tournoud 'DamZ' https://www.drupal.org/u/damien-tournoud
                  +    - Josh Waihi 'fiasco' https://www.drupal.org/u/josh-waihi
                   
                     - Sqlite driver
                  -    - Damien Tournoud 'DamZ' http://drupal.org/user/22211
                  -    - Károly Négyesi 'chx' http://drupal.org/user/9446
                  +    - Damien Tournoud 'DamZ' https://www.drupal.org/u/damien-tournoud
                   
                   Database update system
                  -- Károly Négyesi 'chx' http://drupal.org/user/9446
                  -- Ashok Modi 'BTMash' http://drupal.org/user/60422
                  +- Ashok Modi 'BTMash' https://www.drupal.org/u/btmash
                   
                   Entity system
                  -- Wolfgang Ziegler 'fago' http://drupal.org/user/16747
                  -- Nathaniel Catchpole 'catch' http://drupal.org/user/35733
                  -- Franz Heinzmann 'Frando' http://drupal.org/user/21850
                  +- Wolfgang Ziegler 'fago' https://www.drupal.org/u/fago
                  +- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
                  +- Franz Heinzmann 'Frando' https://www.drupal.org/u/frando
                   
                   File system
                  -- Andrew Morton 'drewish' http://drupal.org/user/34869
                  -- Aaron Winborn 'aaron' http://drupal.org/user/33420
                  +- Andrew Morton 'drewish' https://www.drupal.org/u/drewish
                  +- Aaron Winborn 'aaron' https://www.drupal.org/u/aaron
                   
                   Form system
                  -- Károly Négyesi 'chx' http://drupal.org/user/9446
                  -- Alex Bronstein 'effulgentsia' http://drupal.org/user/78040
                  -- Wolfgang Ziegler 'fago' http://drupal.org/user/16747
                  -- Daniel F. Kudwien 'sun' http://drupal.org/user/54136
                  -- Franz Heinzmann 'Frando' http://drupal.org/user/21850
                  +- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
                  +- Wolfgang Ziegler 'fago' https://www.drupal.org/u/fago
                  +- Daniel F. Kudwien 'sun' https://www.drupal.org/u/sun
                  +- Franz Heinzmann 'Frando' https://www.drupal.org/u/frando
                   
                   Image system
                  -- Andrew Morton 'drewish' http://drupal.org/user/34869
                  -- Nathan Haug 'quicksketch' http://drupal.org/user/35821
                  +- Andrew Morton 'drewish' https://www.drupal.org/u/drewish
                  +- Nathan Haug 'quicksketch' https://www.drupal.org/u/quicksketch
                   
                   Install system
                  -- David Rothstein 'David_Rothstein' http://drupal.org/user/124982
                  +- David Rothstein 'David_Rothstein' https://www.drupal.org/u/david_rothstein
                   
                   JavaScript
                  -- Théodore Biadala 'nod_' http://drupal.org/user/598310
                  -- Steve De Jonghe 'seutje' http://drupal.org/user/264148
                  -- Jesse Renée Beach 'jessebeach' http://drupal.org/user/748566
                  +- Théodore Biadala 'nod_' https://www.drupal.org/u/nod_
                  +- Steve De Jonghe 'seutje' https://www.drupal.org/u/seutje
                   
                   Language system
                  -- Francesco Placella 'plach' http://drupal.org/user/183211
                  -- Daniel F. Kudwien 'sun' http://drupal.org/user/54136
                  +- Francesco Placella 'plach' https://www.drupal.org/u/plach
                  +- Daniel F. Kudwien 'sun' https://www.drupal.org/u/sun
                   
                   Lock system
                  -- Damien Tournoud 'DamZ' http://drupal.org/user/22211
                  +- Damien Tournoud 'DamZ' https://www.drupal.org/u/damien-tournoud
                   
                   Mail system
                   - ?
                   
                   Markup
                  -- Jacine Luisi 'Jacine' http://drupal.org/user/88931
                  -- Daniel F. Kudwien 'sun' http://drupal.org/user/54136
                  +- Jacine Luisi 'Jacine' https://www.drupal.org/u/jacine
                  +- Daniel F. Kudwien 'sun' https://www.drupal.org/u/sun
                   
                   Menu system
                  -- Peter Wolanin 'pwolanin' http://drupal.org/user/49851
                  -- Károly Négyesi 'chx' http://drupal.org/user/9446
                  +- Peter Wolanin 'pwolanin' https://www.drupal.org/u/pwolanin
                   
                   Path system
                  -- Dave Reid 'davereid' http://drupal.org/user/53892
                  -- Nathaniel Catchpole 'catch' http://drupal.org/user/35733
                  +- Dave Reid 'davereid' https://www.drupal.org/u/dave-reid
                  +- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
                   
                   Render system
                  -- Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
                  -- Alex Bronstein 'effulgentsia' http://drupal.org/user/78040
                  -- Franz Heinzmann 'Frando' http://drupal.org/user/21850
                  +- Moshe Weitzman 'moshe weitzman' https://www.drupal.org/u/moshe-weitzman
                  +- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
                  +- Franz Heinzmann 'Frando' https://www.drupal.org/u/frando
                   
                   Theme system
                  -- Earl Miles 'merlinofchaos' http://drupal.org/user/26979
                  -- Alex Bronstein 'effulgentsia' http://drupal.org/user/78040
                  -- Joon Park 'dvessel' http://drupal.org/user/56782
                  -- John Albin Wilkins 'JohnAlbin' http://drupal.org/user/32095
                  +- Earl Miles 'merlinofchaos' https://www.drupal.org/u/merlinofchaos
                  +- Alex Bronstein 'effulgentsia' https://www.drupal.org/u/effulgentsia
                  +- Joon Park 'dvessel' https://www.drupal.org/u/dvessel
                  +- John Albin Wilkins 'JohnAlbin' https://www.drupal.org/u/johnalbin
                   
                   Token system
                  -- Dave Reid 'davereid' http://drupal.org/user/53892
                  +- Dave Reid 'davereid' https://www.drupal.org/u/dave-reid
                   
                   XML-RPC system
                  -- Frederic G. Marand 'fgm' http://drupal.org/user/27985
                  +- Frederic G. Marand 'fgm' https://www.drupal.org/u/fgm
                   
                   
                   Topic coordinators
                   ------------------
                   
                   Accessibility
                  -- Everett Zufelt 'Everett Zufelt' http://drupal.org/user/406552
                  -- Brandon Bowersox-Johnson 'bowersox' http://drupal.org/user/186415
                  +- Everett Zufelt 'Everett Zufelt' https://www.drupal.org/u/everett-zufelt
                  +- Brandon Bowersox-Johnson 'bowersox' https://www.drupal.org/u/bowersox
                   
                   Documentation
                  -- Jennifer Hodgdon 'jhodgdon' http://drupal.org/user/155601
                  -
                  -Security
                  -- Greg Knaddison 'greggles' http://drupal.org/user/36762
                  +- Jennifer Hodgdon 'jhodgdon' https://www.drupal.org/u/jhodgdon
                   
                   Translations
                  -- Gerhard Killesreiter 'killes' http://drupal.org/user/83
                  +- Gerhard Killesreiter 'killes' https://www.drupal.org/u/gerhard-killesreiter
                   
                   User experience and usability
                  -- Roy Scholten 'yoroy' http://drupal.org/user/41502
                  -- Bojhan Somers 'Bojhan' http://drupal.org/user/87969
                  +- Roy Scholten 'yoroy' https://www.drupal.org/u/yoroy
                  +- Bojhan Somers 'Bojhan' https://www.drupal.org/u/bojhan
                   
                   Node Access
                  -- Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
                  -- Ken Rickard 'agentrickard' http://drupal.org/user/20975
                  -- Jess Myrbo 'xjm' http://drupal.org/user/65776
                  +- Moshe Weitzman 'moshe weitzman' https://www.drupal.org/u/moshe-weitzman
                  +- Ken Rickard 'agentrickard' https://www.drupal.org/u/agentrickard
                  +
                  +
                  +Security team
                  +-----------------
                  +
                  +To report a security issue, see: https://www.drupal.org/security-team/report-issue
                  +
                  +The Drupal security team provides Security Advisories for vulnerabilities,
                  +assists developers in resolving security issues, and provides security
                  +documentation. See https://www.drupal.org/security-team for more information.
                  +The security team lead is:
                  +
                  +- Michael Hess 'mlhess' https://www.drupal.org/u/mlhess
                  +
                   
                   Module maintainers
                   ------------------
                  @@ -161,143 +167,141 @@ Aggregator module
                   - ?
                   
                   Block module
                  -- John Albin Wilkins 'JohnAlbin' http://drupal.org/user/32095
                  +- John Albin Wilkins 'JohnAlbin' https://www.drupal.org/u/johnalbin
                   
                   Blog module
                   - ?
                   
                   Book module
                  -- Peter Wolanin 'pwolanin' http://drupal.org/user/49851
                  +- Peter Wolanin 'pwolanin' https://www.drupal.org/u/pwolanin
                   
                   Color module
                   - ?
                   
                   Comment module
                  -- Nathaniel Catchpole 'catch' http://drupal.org/user/35733
                  +- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
                   
                   Contact module
                  -- Dave Reid 'davereid' http://drupal.org/user/53892
                  +- Dave Reid 'davereid' https://www.drupal.org/u/dave-reid
                   
                   Contextual module
                  -- Daniel F. Kudwien 'sun' http://drupal.org/user/54136
                  +- Daniel F. Kudwien 'sun' https://www.drupal.org/u/sun
                   
                   Dashboard module
                   - ?
                   
                   Database logging module
                  -- Khalid Baheyeldin 'kbahey' http://drupal.org/user/4063
                  +- Khalid Baheyeldin 'kbahey' https://www.drupal.org/u/kbahey
                   
                   Field module
                  -- Yves Chedemois 'yched' http://drupal.org/user/39567
                  -- Barry Jaspan 'bjaspan' http://drupal.org/user/46413
                  +- Yves Chedemois 'yched' https://www.drupal.org/u/yched
                  +- Barry Jaspan 'bjaspan' https://www.drupal.org/u/bjaspan
                   
                   Field UI module
                  -- Yves Chedemois 'yched' http://drupal.org/user/39567
                  +- Yves Chedemois 'yched' https://www.drupal.org/u/yched
                   
                   File module
                  -- Aaron Winborn 'aaron' http://drupal.org/user/33420
                  +- Aaron Winborn 'aaron' https://www.drupal.org/u/aaron
                   
                   Filter module
                  -- Daniel F. Kudwien 'sun' http://drupal.org/user/54136
                  +- Daniel F. Kudwien 'sun' https://www.drupal.org/u/sun
                   
                   Forum module
                  -- Lee Rowlands 'larowlan' http://drupal.org/user/395439
                  +- Lee Rowlands 'larowlan' https://www.drupal.org/u/larowlan
                   
                   Help module
                   - ?
                   
                   Image module
                  -- Nathan Haug 'quicksketch' http://drupal.org/user/35821
                  +- Nathan Haug 'quicksketch' https://www.drupal.org/u/quicksketch
                   
                   Locale module
                  -- Gábor Hojtsy 'Gábor Hojtsy' http://drupal.org/user/4166
                  +- Gábor Hojtsy 'Gábor Hojtsy' https://www.drupal.org/u/gábor-hojtsy
                   
                   Menu module
                   - ?
                   
                   Node module
                  -- Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
                  -- David Strauss 'David Strauss' http://drupal.org/user/93254
                  +- Moshe Weitzman 'moshe weitzman' https://www.drupal.org/u/moshe-weitzman
                  +- David Strauss 'David Strauss' https://www.drupal.org/u/david-strauss
                   
                   OpenID module
                  -- Vojtech Kusy 'wojtha' http://drupal.org/user/56154
                  -- Christian Schmidt 'c960657' http://drupal.org/user/216078
                  -- Damien Tournoud 'DamZ' http://drupal.org/user/22211
                  +- Vojtech Kusy 'wojtha' https://www.drupal.org/u/wojtha
                  +- Christian Schmidt 'c960657' https://www.drupal.org/u/c960657
                  +- Damien Tournoud 'DamZ' https://www.drupal.org/u/damien-tournoud
                   
                   Overlay module
                  -- Katherine Senzee 'ksenzee' http://drupal.org/user/139855
                  +- Katherine Senzee 'ksenzee' https://www.drupal.org/u/ksenzee
                   
                   Path module
                  -- Dave Reid 'davereid' http://drupal.org/user/53892
                  +- Dave Reid 'davereid' https://www.drupal.org/u/dave-reid
                   
                   PHP module
                   - ?
                   
                   Poll module
                  -- Andrei Mateescu 'amateescu' http://drupal.org/user/729614
                  +- Andrei Mateescu 'amateescu' https://www.drupal.org/u/amateescu
                   
                   Profile module
                   - ?
                   
                   RDF module
                  -- Stéphane Corlosquet 'scor' http://drupal.org/user/52142
                  +- Stéphane Corlosquet 'scor' https://www.drupal.org/u/scor
                   
                   Search module
                  -- Doug Green 'douggreen' http://drupal.org/user/29191
                  +- Doug Green 'douggreen' https://www.drupal.org/u/douggreen
                   
                   Shortcut module
                  -- David Rothstein 'David_Rothstein' http://drupal.org/user/124982
                  +- David Rothstein 'David_Rothstein' https://www.drupal.org/u/david_rothstein
                   
                   Simpletest module
                  -- Jimmy Berry 'boombatower' http://drupal.org/user/214218
                  -- Károly Négyesi 'chx' http://drupal.org/user/9446
                  +- Jimmy Berry 'boombatower' https://www.drupal.org/u/boombatower
                   
                   Statistics module
                  -- Tim Millwood 'timmillwood' http://drupal.org/user/227849
                  +- Tim Millwood 'timmillwood' https://www.drupal.org/u/timmillwood
                   
                   Syslog module
                  -- Khalid Baheyeldin 'kbahey' http://drupal.org/user/4063
                  +- Khalid Baheyeldin 'kbahey' https://www.drupal.org/u/kbahey
                   
                   System module
                   - ?
                   
                   Taxonomy module
                  -- Jess Myrbo 'xjm' http://drupal.org/user/65776
                  -- Nathaniel Catchpole 'catch' http://drupal.org/user/35733
                  -- Benjamin Doherty 'bangpound' http://drupal.org/user/100456
                  +- Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
                  +- Benjamin Doherty 'bangpound' https://www.drupal.org/u/bangpound
                   
                   Toolbar module
                   - ?
                   
                   Tracker module
                  -- David Strauss 'David Strauss' http://drupal.org/user/93254
                  +- David Strauss 'David Strauss' https://www.drupal.org/u/david-strauss
                   
                   Translation module
                  -- Francesco Placella 'plach' http://drupal.org/user/183211
                  +- Francesco Placella 'plach' https://www.drupal.org/u/plach
                   
                   Trigger module
                   - ?
                   
                   Update module
                  -- Derek Wright 'dww' http://drupal.org/user/46549
                  +- Derek Wright 'dww' https://www.drupal.org/u/dww
                   
                   User module
                  -- Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
                  -- David Strauss 'David Strauss' http://drupal.org/user/93254
                  +- Moshe Weitzman 'moshe weitzman' https://www.drupal.org/u/moshe-weitzman
                  +- David Strauss 'David Strauss' https://www.drupal.org/u/david-strauss
                   
                   
                   Theme maintainers
                   -----------------
                   
                   Bartik theme
                  -- Jen Simmons 'jensimmons' http://drupal.org/user/140882
                  -- Jeff Burns 'Jeff Burnz' http://drupal.org/user/61393
                  +- Jen Simmons 'jensimmons' https://www.drupal.org/u/jensimmons
                  +- Jeff Burns 'Jeff Burnz' https://www.drupal.org/u/jeff-burnz
                   
                   Garland theme
                  -- John Albin Wilkins 'JohnAlbin' http://drupal.org/user/32095
                  +- John Albin Wilkins 'JohnAlbin' https://www.drupal.org/u/johnalbin
                   
                   Seven theme
                  -- Jeff Burns 'Jeff Burnz' http://drupal.org/user/61393
                  +- Jeff Burns 'Jeff Burnz' https://www.drupal.org/u/jeff-burnz
                   
                   Stark theme
                  -- John Albin Wilkins 'JohnAlbin' http://drupal.org/user/32095
                  +- John Albin Wilkins 'JohnAlbin' https://www.drupal.org/u/johnalbin
                  diff --git a/site/README.txt b/site/README.txt
                  index f4c2f64..60d3da5 100644
                  --- a/site/README.txt
                  +++ b/site/README.txt
                  @@ -71,12 +71,12 @@ profiles/your_site_profile/themes respectively to restrict their usage to only
                   sites that were installed with that specific profile.
                   
                   More about installation profiles and distributions:
                  -* Read about the difference between installation profiles and distributions:
                  -  http://drupal.org/node/1089736
                  -* Download contributed installation profiles and distributions:
                  -  http://drupal.org/project/distributions
                  -* Develop your own installation profile or distribution:
                  -  http://drupal.org/developing/distributions
                  + * Read about the difference between installation profiles and distributions:
                  +   http://drupal.org/node/1089736
                  + * Download contributed installation profiles and distributions:
                  +   http://drupal.org/project/distributions
                  + * Develop your own installation profile or distribution:
                  +   http://drupal.org/developing/distributions
                   
                   APPEARANCE
                   ----------
                  diff --git a/site/UPGRADE.txt b/site/UPGRADE.txt
                  index e870ff0..ae733ca 100644
                  --- a/site/UPGRADE.txt
                  +++ b/site/UPGRADE.txt
                  @@ -64,6 +64,9 @@ following the instructions in the INTRODUCTION section at the top of this file:
                      Sometimes an update includes changes to default.settings.php (this will be
                      noted in the release notes). If that's the case, follow these steps:
                   
                  +   - Locate your settings.php file in the /sites/* directory. (Typically
                  +     sites/default.)
                  +
                      - Make a backup copy of your settings.php file, with a different file name.
                   
                      - Make a copy of the new default.settings.php file, and name the copy
                  @@ -74,6 +77,13 @@ following the instructions in the INTRODUCTION section at the top of this file:
                        database information, and you will also want to copy in any other
                        customizations you have added.
                   
                  +   You can find the release notes for your version at
                  +   https://www.drupal.org/project/drupal. At bottom of the project page under
                  +   "Downloads" use the link for your version of Drupal to view the release
                  +   notes. If your version is not listed, use the 'View all releases' link. From
                  +   this page you can scroll down or use the filter to find your version and its
                  +   release notes.
                  +
                   4. Download the latest Drupal 7.x release from http://drupal.org to a
                      directory outside of your web root. Extract the archive and copy the files
                      into your Drupal directory.
                  diff --git a/site/includes/ajax.inc b/site/includes/ajax.inc
                  index ab0111c..f059209 100644
                  --- a/site/includes/ajax.inc
                  +++ b/site/includes/ajax.inc
                  @@ -211,7 +211,7 @@
                    *
                    * When returning an Ajax command array, it is often useful to have
                    * status messages rendered along with other tasks in the command array.
                  - * In that case the the Ajax commands array may be constructed like this:
                  + * In that case the Ajax commands array may be constructed like this:
                    * @code
                    *   $commands = array();
                    *   $commands[] = ajax_command_replace(NULL, $output);
                  @@ -230,6 +230,10 @@
                    *   functions.
                    */
                   function ajax_render($commands = array()) {
                  +  // Although ajax_deliver() does this, some contributed and custom modules
                  +  // render Ajax responses without using that delivery callback.
                  +  ajax_set_verification_header();
                  +
                     // Ajax responses aren't rendered with html.tpl.php, so we have to call
                     // drupal_get_css() and drupal_get_js() here, in order to have new files added
                     // during this request to be loaded by the page. We only want to send back
                  @@ -276,7 +280,7 @@ function ajax_render($commands = array()) {
                   
                     $extra_commands = array();
                     if (!empty($styles)) {
                  -    $extra_commands[] = ajax_command_prepend('head', $styles);
                  +    $extra_commands[] = ajax_command_add_css($styles);
                     }
                     if (!empty($scripts_header)) {
                       $extra_commands[] = ajax_command_prepend('head', $scripts_header);
                  @@ -292,7 +296,7 @@ function ajax_render($commands = array()) {
                     $scripts = drupal_add_js();
                     if (!empty($scripts['settings'])) {
                       $settings = $scripts['settings'];
                  -    array_unshift($commands, ajax_command_settings(call_user_func_array('array_merge_recursive', $settings['data']), TRUE));
                  +    array_unshift($commands, ajax_command_settings(drupal_array_merge_deep_array($settings['data']), TRUE));
                     }
                   
                     // Allow modules to alter any Ajax response.
                  @@ -308,10 +312,11 @@ function ajax_render($commands = array()) {
                    * pulls the form info from $_POST.
                    *
                    * @return
                  - *   An array containing the $form and $form_state. Use the list() function
                  - *   to break these apart:
                  + *   An array containing the $form, $form_state, $form_id, $form_build_id and an
                  + *   initial list of Ajax $commands. Use the list() function to break these
                  + *   apart:
                    *   @code
                  - *     list($form, $form_state, $form_id, $form_build_id) = ajax_get_form();
                  + *     list($form, $form_state, $form_id, $form_build_id, $commands) = ajax_get_form();
                    *   @endcode
                    */
                   function ajax_get_form() {
                  @@ -331,6 +336,17 @@ function ajax_get_form() {
                       drupal_exit();
                     }
                   
                  +  // When a page level cache is enabled, the form-build id might have been
                  +  // replaced from within form_get_cache. If this is the case, it is also
                  +  // necessary to update it in the browser by issuing an appropriate Ajax
                  +  // command.
                  +  $commands = array();
                  +  if (isset($form['#build_id_old']) && $form['#build_id_old'] != $form['#build_id']) {
                  +    // If the form build ID has changed, issue an Ajax command to update it.
                  +    $commands[] = ajax_command_update_build_id($form);
                  +    $form_build_id = $form['#build_id'];
                  +  }
                  +
                     // Since some of the submit handlers are run, redirects need to be disabled.
                     $form_state['no_redirect'] = TRUE;
                   
                  @@ -345,7 +361,7 @@ function ajax_get_form() {
                     $form_state['input'] = $_POST;
                     $form_id = $form['#form_id'];
                   
                  -  return array($form, $form_state, $form_id, $form_build_id);
                  +  return array($form, $form_state, $form_id, $form_build_id, $commands);
                   }
                   
                   /**
                  @@ -366,7 +382,7 @@ function ajax_get_form() {
                    * @see system_menu()
                    */
                   function ajax_form_callback() {
                  -  list($form, $form_state) = ajax_get_form();
                  +  list($form, $form_state, $form_id, $form_build_id, $commands) = ajax_get_form();
                     drupal_process_form($form['#form_id'], $form, $form_state);
                   
                     // We need to return the part of the form (or some other content) that needs
                  @@ -378,8 +394,20 @@ function ajax_form_callback() {
                     if (!empty($form_state['triggering_element'])) {
                       $callback = $form_state['triggering_element']['#ajax']['callback'];
                     }
                  -  if (!empty($callback) && function_exists($callback)) {
                  -    return $callback($form, $form_state);
                  +  if (!empty($callback) && is_callable($callback)) {
                  +    $result = $callback($form, $form_state);
                  +
                  +    if (!(is_array($result) && isset($result['#type']) && $result['#type'] == 'ajax')) {
                  +      // Turn the response into a #type=ajax array if it isn't one already.
                  +      $result = array(
                  +        '#type' => 'ajax',
                  +        '#commands' => ajax_prepare_response($result),
                  +      );
                  +    }
                  +
                  +    $result['#commands'] = array_merge($commands, $result['#commands']);
                  +
                  +    return $result;
                     }
                   }
                   
                  @@ -463,6 +491,9 @@ function ajax_deliver($page_callback_result) {
                       }
                     }
                   
                  +  // Let ajax.js know that this response is safe to process.
                  +  ajax_set_verification_header();
                  +
                     // Print the response.
                     $commands = ajax_prepare_response($page_callback_result);
                     $json = ajax_render($commands);
                  @@ -552,6 +583,29 @@ function ajax_prepare_response($page_callback_result) {
                     return $commands;
                   }
                   
                  +/**
                  + * Sets a response header for ajax.js to trust the response body.
                  + *
                  + * It is not safe to invoke Ajax commands within user-uploaded files, so this
                  + * header protects against those being invoked.
                  + *
                  + * @see Drupal.ajax.options.success()
                  + */
                  +function ajax_set_verification_header() {
                  +  $added = &drupal_static(__FUNCTION__);
                  +
                  +  // User-uploaded files cannot set any response headers, so a custom header is
                  +  // used to indicate to ajax.js that this response is safe. Note that most
                  +  // Ajax requests bound using the Form API will be protected by having the URL
                  +  // flagged as trusted in Drupal.settings, so this header is used only for
                  +  // things like custom markup that gets Ajax behaviors attached.
                  +  if (empty($added)) {
                  +    drupal_add_http_header('X-Drupal-Ajax-Token', '1');
                  +    // Avoid sending the header twice.
                  +    $added = TRUE;
                  +  }
                  +}
                  +
                   /**
                    * Performs end-of-Ajax-request tasks.
                    *
                  @@ -740,7 +794,12 @@ function ajax_pre_render_element($element) {
                   
                       $element['#attached']['js'][] = array(
                         'type' => 'setting',
                  -      'data' => array('ajax' => array($element['#id'] => $settings)),
                  +      'data' => array(
                  +        'ajax' => array($element['#id'] => $settings),
                  +        'urlIsAjaxTrusted' => array(
                  +          $settings['url'] => TRUE,
                  +        ),
                  +      ),
                       );
                   
                       // Indicate that Ajax processing was successful.
                  @@ -1210,3 +1269,49 @@ function ajax_command_restripe($selector) {
                       'selector' => $selector,
                     );
                   }
                  +
                  +/**
                  + * Creates a Drupal Ajax 'update_build_id' command.
                  + *
                  + * This command updates the value of a hidden form_build_id input element on a
                  + * form. It requires the form passed in to have keys for both the old build ID
                  + * in #build_id_old and the new build ID in #build_id.
                  + *
                  + * The primary use case for this Ajax command is to serve a new build ID to a
                  + * form served from the cache to an anonymous user, preventing one anonymous
                  + * user from accessing the form state of another anonymous users on Ajax enabled
                  + * forms.
                  + *
                  + * @param $form
                  + *   The form array representing the form whose build ID should be updated.
                  + */
                  +function ajax_command_update_build_id($form) {
                  +  return array(
                  +    'command' => 'updateBuildId',
                  +    'old' => $form['#build_id_old'],
                  +    'new' => $form['#build_id'],
                  +  );
                  +}
                  +
                  +/**
                  + * Creates a Drupal Ajax 'add_css' command.
                  + *
                  + * This method will add css via ajax in a cross-browser compatible way.
                  + *
                  + * This command is implemented by Drupal.ajax.prototype.commands.add_css()
                  + * defined in misc/ajax.js.
                  + *
                  + * @param $styles
                  + *   A string that contains the styles to be added.
                  + *
                  + * @return
                  + *   An array suitable for use with the ajax_render() function.
                  + *
                  + * @see misc/ajax.js
                  + */
                  +function ajax_command_add_css($styles) {
                  +  return array(
                  +    'command' => 'add_css',
                  +    'data' => $styles,
                  +  );
                  +}
                  diff --git a/site/includes/batch.inc b/site/includes/batch.inc
                  index 061acd4..e89ab8d 100644
                  --- a/site/includes/batch.inc
                  +++ b/site/includes/batch.inc
                  @@ -460,10 +460,10 @@ function _batch_finished() {
                         if (isset($batch_set['file']) && is_file($batch_set['file'])) {
                           include_once DRUPAL_ROOT . '/' . $batch_set['file'];
                         }
                  -      if (function_exists($batch_set['finished'])) {
                  +      if (is_callable($batch_set['finished'])) {
                           $queue = _batch_queue($batch_set);
                           $operations = $queue->getAllItems();
                  -        $batch_set['finished']($batch_set['success'], $batch_set['results'], $operations, format_interval($batch_set['elapsed'] / 1000));
                  +        call_user_func($batch_set['finished'], $batch_set['success'], $batch_set['results'], $operations, format_interval($batch_set['elapsed'] / 1000));
                         }
                       }
                     }
                  diff --git a/site/includes/bootstrap.inc b/site/includes/bootstrap.inc
                  index d27f8d1..a91c398 100644
                  --- a/site/includes/bootstrap.inc
                  +++ b/site/includes/bootstrap.inc
                  @@ -8,7 +8,7 @@
                   /**
                    * The current system version.
                    */
                  -define('VERSION', '7.23');
                  +define('VERSION', '7.59');
                   
                   /**
                    * Core API compatibility.
                  @@ -244,10 +244,24 @@ define('REGISTRY_WRITE_LOOKUP_CACHE', 2);
                   /**
                    * Regular expression to match PHP function names.
                    *
                  - * @see http://php.net/manual/en/language.functions.php
                  + * @see http://php.net/manual/language.functions.php
                    */
                   define('DRUPAL_PHP_FUNCTION_PATTERN', '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*');
                   
                  +/**
                  + * A RFC7231 Compliant date.
                  + *
                  + * http://tools.ietf.org/html/rfc7231#section-7.1.1.1
                  + *
                  + * Example: Sun, 06 Nov 1994 08:49:37 GMT
                  + *
                  + * This constant was introduced in PHP 7.0.19 and PHP 7.1.5 but needs to be
                  + * defined by Drupal for earlier PHP versions.
                  + */
                  +if (!defined('DATE_RFC7231')) {
                  +  define('DATE_RFC7231', 'D, d M Y H:i:s \G\M\T');
                  +}
                  +
                   /**
                    * Provides a caching wrapper to be used in place of large array structures.
                    *
                  @@ -278,7 +292,7 @@ define('DRUPAL_PHP_FUNCTION_PATTERN', '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
                    * error, and $var will be populated with the contents of $object['foo'], but
                    * that data will be passed by value, not reference. For more information on
                    * the PHP limitation, see the note in the official PHP documentation at·
                  - * http://php.net/manual/en/arrayaccess.offsetget.php on
                  + * http://php.net/manual/arrayaccess.offsetget.php on
                    * ArrayAccess::offsetGet().
                    *
                    * By default, the class accounts for caches where calling functions might
                  @@ -520,9 +534,8 @@ function timer_stop($name) {
                    * Returns the appropriate configuration directory.
                    *
                    * Returns the configuration path based on the site's hostname, port, and
                  - * pathname. Uses find_conf_path() to find the current configuration directory.
                  - * See default.settings.php for examples on how the URL is converted to a
                  - * directory.
                  + * pathname. See default.settings.php for examples on how the URL is converted
                  + * to a directory.
                    *
                    * @param bool $require_settings
                    *   Only configuration directories with an existing settings.php file
                  @@ -683,7 +696,8 @@ function drupal_environment_initialize() {
                     ini_set('session.use_only_cookies', '1');
                     ini_set('session.use_trans_sid', '0');
                     // Don't send HTTP headers using PHP's session handler.
                  -  ini_set('session.cache_limiter', 'none');
                  +  // An empty string is used here to disable the cache limiter.
                  +  ini_set('session.cache_limiter', '');
                     // Use httponly session cookies.
                     ini_set('session.cookie_httponly', '1');
                   
                  @@ -699,7 +713,24 @@ function drupal_environment_initialize() {
                    *  TRUE if only containing valid characters, or FALSE otherwise.
                    */
                   function drupal_valid_http_host($host) {
                  -  return preg_match('/^\[?(?:[a-zA-Z0-9-:\]_]+\.?)+$/', $host);
                  +  // Limit the length of the host name to 1000 bytes to prevent DoS attacks with
                  +  // long host names.
                  +  return strlen($host) <= 1000
                  +    // Limit the number of subdomains and port separators to prevent DoS attacks
                  +    // in conf_path().
                  +    && substr_count($host, '.') <= 100
                  +    && substr_count($host, ':') <= 100
                  +    && preg_match('/^\[?(?:[a-zA-Z0-9-:\]_]+\.?)+$/', $host);
                  +}
                  +
                  +/**
                  + * Checks whether an HTTPS request is being served.
                  + *
                  + * @return bool
                  + *   TRUE if the request is HTTPS, FALSE otherwise.
                  + */
                  +function drupal_is_https() {
                  +  return isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on';
                   }
                   
                   /**
                  @@ -715,7 +746,7 @@ function drupal_settings_initialize() {
                     if (file_exists(DRUPAL_ROOT . '/' . conf_path() . '/settings.php')) {
                       include_once DRUPAL_ROOT . '/' . conf_path() . '/settings.php';
                     }
                  -  $is_https = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on';
                  +  $is_https = drupal_is_https();
                   
                     if (isset($base_url)) {
                       // Parse fixed base URL from settings.php.
                  @@ -812,14 +843,21 @@ function drupal_settings_initialize() {
                    * @param $filename
                    *   The filename of the item if it is to be set explicitly rather
                    *   than by consulting the database.
                  + * @param bool $trigger_error
                  + *   Whether to trigger an error when a file is missing or has unexpectedly
                  + *   moved. This defaults to TRUE, but can be set to FALSE by calling code that
                  + *   merely wants to check whether an item exists in the filesystem.
                    *
                    * @return
                    *   The filename of the requested item or NULL if the item is not found.
                    */
                  -function drupal_get_filename($type, $name, $filename = NULL) {
                  +function drupal_get_filename($type, $name, $filename = NULL, $trigger_error = TRUE) {
                  +  // The $files static variable will hold the locations of all requested files.
                  +  // We can be sure that any file listed in this static variable actually
                  +  // exists as all additions have gone through a file_exists() check.
                     // The location of files will not change during the request, so do not use
                     // drupal_static().
                  -  static $files = array(), $dirs = array();
                  +  static $files = array();
                   
                     // Profiles are a special case: they have a fixed location and naming.
                     if ($type == 'profile') {
                  @@ -831,64 +869,296 @@ function drupal_get_filename($type, $name, $filename = NULL) {
                     }
                   
                     if (!empty($filename) && file_exists($filename)) {
                  +    // Prime the static cache with the provided filename.
                       $files[$type][$name] = $filename;
                     }
                     elseif (isset($files[$type][$name])) {
                  -    // nothing
                  +    // This item had already been found earlier in the request, either through
                  +    // priming of the static cache (for example, in system_list()), through a
                  +    // lookup in the {system} table, or through a file scan (cached or not). Do
                  +    // nothing.
                     }
                  -  // Verify that we have an active database connection, before querying
                  -  // the database. This is required because this function is called both
                  -  // before we have a database connection (i.e. during installation) and
                  -  // when a database connection fails.
                     else {
                  +    // Look for the filename listed in the {system} table. Verify that we have
                  +    // an active database connection before doing so, since this function is
                  +    // called both before we have a database connection (i.e. during
                  +    // installation) and when a database connection fails.
                  +    $database_unavailable = TRUE;
                       try {
                         if (function_exists('db_query')) {
                           $file = db_query("SELECT filename FROM {system} WHERE name = :name AND type = :type", array(':name' => $name, ':type' => $type))->fetchField();
                  -        if (file_exists(DRUPAL_ROOT . '/' . $file)) {
                  +        if ($file !== FALSE && file_exists(DRUPAL_ROOT . '/' . $file)) {
                             $files[$type][$name] = $file;
                           }
                  +        $database_unavailable = FALSE;
                         }
                       }
                       catch (Exception $e) {
                         // The database table may not exist because Drupal is not yet installed,
                  -      // or the database might be down. We have a fallback for this case so we
                  -      // hide the error completely.
                  +      // the database might be down, or we may have done a non-database cache
                  +      // flush while $conf['page_cache_without_database'] = TRUE and
                  +      // $conf['page_cache_invoke_hooks'] = TRUE. We have a fallback for these
                  +      // cases so we hide the error completely.
                       }
                  -    // Fallback to searching the filesystem if the database could not find the
                  -    // file or the file returned by the database is not found.
                  +    // Fall back to searching the filesystem if the database could not find the
                  +    // file or the file does not exist at the path returned by the database.
                       if (!isset($files[$type][$name])) {
                  -      // We have a consistent directory naming: modules, themes...
                  -      $dir = $type . 's';
                  -      if ($type == 'theme_engine') {
                  -        $dir = 'themes/engines';
                  -        $extension = 'engine';
                  -      }
                  -      elseif ($type == 'theme') {
                  -        $extension = 'info';
                  -      }
                  -      else {
                  -        $extension = $type;
                  -      }
                  +      $files[$type][$name] = _drupal_get_filename_fallback($type, $name, $trigger_error, $database_unavailable);
                  +    }
                  +  }
                   
                  -      if (!isset($dirs[$dir][$extension])) {
                  -        $dirs[$dir][$extension] = TRUE;
                  -        if (!function_exists('drupal_system_listing')) {
                  -          require_once DRUPAL_ROOT . '/includes/common.inc';
                  -        }
                  -        // Scan the appropriate directories for all files with the requested
                  -        // extension, not just the file we are currently looking for. This
                  -        // prevents unnecessary scans from being repeated when this function is
                  -        // called more than once in the same page request.
                  -        $matches = drupal_system_listing("/^" . DRUPAL_PHP_FUNCTION_PATTERN . "\.$extension$/", $dir, 'name', 0);
                  -        foreach ($matches as $matched_name => $file) {
                  -          $files[$type][$matched_name] = $file->uri;
                  +  if (isset($files[$type][$name])) {
                  +    return $files[$type][$name];
                  +  }
                  +}
                  +
                  +/**
                  + * Performs a cached file system scan as a fallback when searching for a file.
                  + *
                  + * This function looks for the requested file by triggering a file scan,
                  + * caching the new location if the file has moved and caching the miss
                  + * if the file is missing. If a file had been marked as missing in a previous
                  + * file scan, or if it has been marked as moved and is still in the last known
                  + * location, no new file scan will be performed.
                  + *
                  + * @param string $type
                  + *   The type of the item (theme, theme_engine, module, profile).
                  + * @param string $name
                  + *   The name of the item for which the filename is requested.
                  + * @param bool $trigger_error
                  + *   Whether to trigger an error when a file is missing or has unexpectedly
                  + *   moved.
                  + * @param bool $database_unavailable
                  + *   Whether this function is being called because the Drupal database could
                  + *   not be queried for the file's location.
                  + *
                  + * @return
                  + *   The filename of the requested item or NULL if the item is not found.
                  + *
                  + * @see drupal_get_filename()
                  + */
                  +function _drupal_get_filename_fallback($type, $name, $trigger_error, $database_unavailable) {
                  +  $file_scans = &_drupal_file_scan_cache();
                  +  $filename = NULL;
                  +
                  +  // If the cache indicates that the item is missing, or we can verify that the
                  +  // item exists in the location the cache says it exists in, use that.
                  +  if (isset($file_scans[$type][$name]) && ($file_scans[$type][$name] === FALSE || file_exists($file_scans[$type][$name]))) {
                  +    $filename = $file_scans[$type][$name];
                  +  }
                  +  // Otherwise, perform a new file scan to find the item.
                  +  else {
                  +    $filename = _drupal_get_filename_perform_file_scan($type, $name);
                  +    // Update the static cache, and mark the persistent cache for updating at
                  +    // the end of the page request. See drupal_file_scan_write_cache().
                  +    $file_scans[$type][$name] = $filename;
                  +    $file_scans['#write_cache'] = TRUE;
                  +  }
                  +
                  +  // If requested, trigger a user-level warning about the missing or
                  +  // unexpectedly moved file. If the database was unavailable, do not trigger a
                  +  // warning in the latter case, though, since if the {system} table could not
                  +  // be queried there is no way to know if the location found here was
                  +  // "unexpected" or not.
                  +  if ($trigger_error) {
                  +    $error_type = $filename === FALSE ? 'missing' : 'moved';
                  +    if ($error_type == 'missing' || !$database_unavailable) {
                  +      _drupal_get_filename_fallback_trigger_error($type, $name, $error_type);
                  +    }
                  +  }
                  +
                  +  // The cache stores FALSE for files that aren't found (to be able to
                  +  // distinguish them from files that have not yet been searched for), but
                  +  // drupal_get_filename() expects NULL for these instead, so convert to NULL
                  +  // before returning.
                  +  if ($filename === FALSE) {
                  +    $filename = NULL;
                  +  }
                  +  return $filename;
                  +}
                  +
                  +/**
                  + * Returns the current list of cached file system scan results.
                  + *
                  + * @return
                  + *   An associative array tracking the most recent file scan results for all
                  + *   files that have had scans performed. The keys are the type and name of the
                  + *   item that was searched for, and the values can be either:
                  + *   - Boolean FALSE if the item was not found in the file system.
                  + *   - A string pointing to the location where the item was found.
                  + */
                  +function &_drupal_file_scan_cache() {
                  +  $file_scans = &drupal_static(__FUNCTION__, array());
                  +
                  +  // The file scan results are stored in a persistent cache (in addition to the
                  +  // static cache) but because this function can be called before the
                  +  // persistent cache is available, we must merge any items that were found
                  +  // earlier in the page request into the results from the persistent cache.
                  +  if (!isset($file_scans['#cache_merge_done'])) {
                  +    try {
                  +      if (function_exists('cache_get')) {
                  +        $cache = cache_get('_drupal_file_scan_cache', 'cache_bootstrap');
                  +        if (!empty($cache->data)) {
                  +          // File scan results from the current request should take precedence
                  +          // over the results from the persistent cache, since they are newer.
                  +          $file_scans = drupal_array_merge_deep($cache->data, $file_scans);
                           }
                  +        // Set a flag to indicate that the persistent cache does not need to be
                  +        // merged again.
                  +        $file_scans['#cache_merge_done'] = TRUE;
                         }
                       }
                  +    catch (Exception $e) {
                  +      // Hide the error.
                  +    }
                     }
                   
                  -  if (isset($files[$type][$name])) {
                  -    return $files[$type][$name];
                  +  return $file_scans;
                  +}
                  +
                  +/**
                  + * Performs a file system scan to search for a system resource.
                  + *
                  + * @param $type
                  + *   The type of the item (theme, theme_engine, module, profile).
                  + * @param $name
                  + *   The name of the item for which the filename is requested.
                  + *
                  + * @return
                  + *   The filename of the requested item or FALSE if the item is not found.
                  + *
                  + * @see drupal_get_filename()
                  + * @see _drupal_get_filename_fallback()
                  + */
                  +function _drupal_get_filename_perform_file_scan($type, $name) {
                  +  // The location of files will not change during the request, so do not use
                  +  // drupal_static().
                  +  static $dirs = array(), $files = array();
                  +
                  +  // We have a consistent directory naming: modules, themes...
                  +  $dir = $type . 's';
                  +  if ($type == 'theme_engine') {
                  +    $dir = 'themes/engines';
                  +    $extension = 'engine';
                  +  }
                  +  elseif ($type == 'theme') {
                  +    $extension = 'info';
                  +  }
                  +  else {
                  +    $extension = $type;
                  +  }
                  +
                  +  // Check if we had already scanned this directory/extension combination.
                  +  if (!isset($dirs[$dir][$extension])) {
                  +    // Log that we have now scanned this directory/extension combination
                  +    // into a static variable so as to prevent unnecessary file scans.
                  +    $dirs[$dir][$extension] = TRUE;
                  +    if (!function_exists('drupal_system_listing')) {
                  +      require_once DRUPAL_ROOT . '/includes/common.inc';
                  +    }
                  +    // Scan the appropriate directories for all files with the requested
                  +    // extension, not just the file we are currently looking for. This
                  +    // prevents unnecessary scans from being repeated when this function is
                  +    // called more than once in the same page request.
                  +    $matches = drupal_system_listing("/^" . DRUPAL_PHP_FUNCTION_PATTERN . "\.$extension$/", $dir, 'name', 0);
                  +    foreach ($matches as $matched_name => $file) {
                  +      // Log the locations found in the file scan into a static variable.
                  +      $files[$type][$matched_name] = $file->uri;
                  +    }
                  +  }
                  +
                  +  // Return the results of the file system scan, or FALSE to indicate the file
                  +  // was not found.
                  +  return isset($files[$type][$name]) ? $files[$type][$name] : FALSE;
                  +}
                  +
                  +/**
                  + * Triggers a user-level warning for missing or unexpectedly moved files.
                  + *
                  + * @param $type
                  + *   The type of the item (theme, theme_engine, module, profile).
                  + * @param $name
                  + *   The name of the item for which the filename is requested.
                  + * @param $error_type
                  + *   The type of the error ('missing' or 'moved').
                  + *
                  + * @see drupal_get_filename()
                  + * @see _drupal_get_filename_fallback()
                  + */
                  +function _drupal_get_filename_fallback_trigger_error($type, $name, $error_type) {
                  +  // Hide messages due to known bugs that will appear on a lot of sites.
                  +  // @todo Remove this in https://www.drupal.org/node/2383823
                  +  if (empty($name)) {
                  +    return;
                  +  }
                  +
                  +  // Make sure we only show any missing or moved file errors only once per
                  +  // request.
                  +  static $errors_triggered = array();
                  +  if (empty($errors_triggered[$type][$name][$error_type])) {
                  +    // Use _drupal_trigger_error_with_delayed_logging() here since these are
                  +    // triggered during low-level operations that cannot necessarily be
                  +    // interrupted by a watchdog() call.
                  +    if ($error_type == 'missing') {
                  +      _drupal_trigger_error_with_delayed_logging(format_string('The following @type is missing from the file system: %name. For information about how to fix this, see the documentation page.', array('@type' => $type, '%name' => $name, '@documentation' => 'https://www.drupal.org/node/2487215')), E_USER_WARNING);
                  +    }
                  +    elseif ($error_type == 'moved') {
                  +      _drupal_trigger_error_with_delayed_logging(format_string('The following @type has moved within the file system: %name. In order to fix this, clear caches or put the @type back in its original location. For more information, see the documentation page.', array('@type' => $type, '%name' => $name, '@documentation' => 'https://www.drupal.org/node/2487215')), E_USER_WARNING);
                  +    }
                  +    $errors_triggered[$type][$name][$error_type] = TRUE;
                  +  }
                  +}
                  +
                  +/**
                  + * Invokes trigger_error() with logging delayed until the end of the request.
                  + *
                  + * This is an alternative to PHP's trigger_error() function which can be used
                  + * during low-level Drupal core operations that need to avoid being interrupted
                  + * by a watchdog() call.
                  + *
                  + * Normally, Drupal's error handler calls watchdog() in response to a
                  + * trigger_error() call. However, this invokes hook_watchdog() which can run
                  + * arbitrary code. If the trigger_error() happens in the middle of an
                  + * operation such as a rebuild operation which should not be interrupted by
                  + * arbitrary code, that could potentially break or trigger the rebuild again.
                  + * This function protects against that by delaying the watchdog() call until
                  + * the end of the current page request.
                  + *
                  + * This is an internal function which should only be called by low-level Drupal
                  + * core functions. It may be removed in a future Drupal 7 release.
                  + *
                  + * @param string $error_msg
                  + *   The error message to trigger. As with trigger_error() itself, this is
                  + *   limited to 1024 bytes; additional characters beyond that will be removed.
                  + * @param int $error_type
                  + *   (optional) The type of error. This should be one of the E_USER family of
                  + *   constants. As with trigger_error() itself, this defaults to E_USER_NOTICE
                  + *   if not provided.
                  + *
                  + * @see _drupal_log_error()
                  + */
                  +function _drupal_trigger_error_with_delayed_logging($error_msg, $error_type = E_USER_NOTICE) {
                  +  $delay_logging = &drupal_static(__FUNCTION__, FALSE);
                  +  $delay_logging = TRUE;
                  +  trigger_error($error_msg, $error_type);
                  +  $delay_logging = FALSE;
                  +}
                  +
                  +/**
                  + * Writes the file scan cache to the persistent cache.
                  + *
                  + * This cache stores all files marked as missing or moved after a file scan
                  + * to prevent unnecessary file scans in subsequent requests. This cache is
                  + * cleared in system_list_reset() (i.e. after a module/theme rebuild).
                  + */
                  +function drupal_file_scan_write_cache() {
                  +  // Only write to the persistent cache if requested, and if we know that any
                  +  // data previously in the cache was successfully loaded and merged in by
                  +  // _drupal_file_scan_cache().
                  +  $file_scans = &_drupal_file_scan_cache();
                  +  if (isset($file_scans['#write_cache']) && isset($file_scans['#cache_merge_done'])) {
                  +    unset($file_scans['#write_cache']);
                  +    cache_set('_drupal_file_scan_cache', $file_scans, 'cache_bootstrap');
                     }
                   }
                   
                  @@ -1039,7 +1309,7 @@ function drupal_page_get_cache($check_only = FALSE) {
                    * Determines the cacheability of the current page.
                    *
                    * @param $allow_caching
                  - *   Set to FALSE if you want to prevent this page to get cached.
                  + *   Set to FALSE if you want to prevent this page from being cached.
                    *
                    * @return
                    *   TRUE if the current page can be cached, FALSE otherwise.
                  @@ -1229,23 +1499,10 @@ function drupal_send_headers($default_headers = array(), $only_default = FALSE)
                    * fresh page on every request. This prevents authenticated users from seeing
                    * locally cached pages.
                    *
                  - * Also give each page a unique ETag. This will force clients to include both
                  - * an If-Modified-Since header and an If-None-Match header when doing
                  - * conditional requests for the page (required by RFC 2616, section 13.3.4),
                  - * making the validation more robust. This is a workaround for a bug in Mozilla
                  - * Firefox that is triggered when Drupal's caching is enabled and the user
                  - * accesses Drupal via an HTTP proxy (see
                  - * https://bugzilla.mozilla.org/show_bug.cgi?id=269303): When an authenticated
                  - * user requests a page, and then logs out and requests the same page again,
                  - * Firefox may send a conditional request based on the page that was cached
                  - * locally when the user was logged in. If this page did not have an ETag
                  - * header, the request only contains an If-Modified-Since header. The date will
                  - * be recent, because with authenticated users the Last-Modified header always
                  - * refers to the time of the request. If the user accesses Drupal via a proxy
                  - * server, and the proxy already has a cached copy of the anonymous page with an
                  - * older Last-Modified date, the proxy may respond with 304 Not Modified, making
                  - * the client think that the anonymous and authenticated pageviews are
                  - * identical.
                  + * ETag and Last-Modified headers are not set per default for authenticated
                  + * users so that browsers do not send If-Modified-Since headers from
                  + * authenticated user pages. drupal_serve_page_from_cache() will set appropriate
                  + * ETag and Last-Modified headers for cached pages.
                    *
                    * @see drupal_page_set_cache()
                    */
                  @@ -1258,9 +1515,11 @@ function drupal_page_header() {
                   
                     $default_headers = array(
                       'Expires' => 'Sun, 19 Nov 1978 05:00:00 GMT',
                  -    'Last-Modified' => gmdate(DATE_RFC1123, REQUEST_TIME),
                  -    'Cache-Control' => 'no-cache, must-revalidate, post-check=0, pre-check=0',
                  -    'ETag' => '"' . REQUEST_TIME . '"',
                  +    'Cache-Control' => 'no-cache, must-revalidate',
                  +    // Prevent browsers from sniffing a response and picking a MIME type
                  +    // different from the declared content-type, since that can lead to
                  +    // XSS and other vulnerabilities.
                  +    'X-Content-Type-Options' => 'nosniff',
                     );
                     drupal_send_headers($default_headers);
                   }
                  @@ -1278,7 +1537,7 @@ function drupal_page_header() {
                    */
                   function drupal_serve_page_from_cache(stdClass $cache) {
                     // Negotiate whether to use compression.
                  -  $page_compression = variable_get('page_compression', TRUE) && extension_loaded('zlib');
                  +  $page_compression = !empty($cache->data['page_compressed']);
                     $return_compressed = $page_compression && isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE;
                   
                     // Get headers set in hook_boot(). Keys are lower-case.
                  @@ -1328,7 +1587,7 @@ function drupal_serve_page_from_cache(stdClass $cache) {
                       drupal_add_http_header($name, $value);
                     }
                   
                  -  $default_headers['Last-Modified'] = gmdate(DATE_RFC1123, $cache->created);
                  +  $default_headers['Last-Modified'] = gmdate(DATE_RFC7231, $cache->created);
                   
                     // HTTP/1.0 proxies does not support the Vary header, so prevent any caching
                     // by sending an Expires date in the past. HTTP/1.1 clients ignores the
                  @@ -1434,6 +1693,23 @@ function drupal_unpack($obj, $field = 'data') {
                    * available to code that needs localization. See st() and get_t() for
                    * alternatives.
                    *
                  + * @section sec_context String context
                  + * Matching source strings are normally only translated once, and the same
                  + * translation is used everywhere that has a matching string. However, in some
                  + * cases, a certain English source string needs to have multiple translations.
                  + * One example of this is the string "May", which could be used as either a
                  + * full month name or a 3-letter abbreviated month. In other languages where
                  + * the month name for May has more than 3 letters, you would need to provide
                  + * two different translations (one for the full name and one abbreviated), and
                  + * the correct form would need to be chosen, depending on how "May" is being
                  + * used. To facilitate this, the "May" string should be provided with two
                  + * different contexts in the $options parameter when calling t(). For example:
                  + * @code
                  + * t('May', array(), array('context' => 'Long month name')
                  + * t('May', array(), array('context' => 'Abbreviated month name')
                  + * @endcode
                  + * See https://localize.drupal.org/node/2109 for more information.
                  + *
                    * @param $string
                    *   A string containing the English string to translate.
                    * @param $args
                  @@ -1444,8 +1720,9 @@ function drupal_unpack($obj, $field = 'data') {
                    *   An associative array of additional options, with the following elements:
                    *   - 'langcode' (defaults to the current language): The language code to
                    *     translate to a language other than what is used to display the page.
                  - *   - 'context' (defaults to the empty context): The context the source string
                  - *     belongs to.
                  + *   - 'context' (defaults to the empty context): A string giving the context
                  + *     that the source string belongs to. See @ref sec_context above for more
                  + *     information.
                    *
                    * @return
                    *   The translated string.
                  @@ -1551,12 +1828,13 @@ function format_string($string, array $args = array()) {
                    * Also validates strings as UTF-8 to prevent cross site scripting attacks on
                    * Internet Explorer 6.
                    *
                  - * @param $text
                  + * @param string $text
                    *   The text to be checked or processed.
                    *
                  - * @return
                  - *   An HTML safe version of $text, or an empty string if $text is not
                  - *   valid UTF-8.
                  + * @return string
                  + *   An HTML safe version of $text. If $text is not valid UTF-8, an empty string
                  + *   is returned and, on PHP < 5.4, a warning may be issued depending on server
                  + *   configuration (see @link https://bugs.php.net/bug.php?id=47494 @endlink).
                    *
                    * @see drupal_validate_utf8()
                    * @ingroup sanitization
                  @@ -1641,14 +1919,14 @@ function request_uri() {
                    *   information about the passed-in exception is used.
                    * @param $variables
                    *   Array of variables to replace in the message on display. Defaults to the
                  - *   return value of drupal_decode_exception().
                  + *   return value of _drupal_decode_exception().
                    * @param $severity
                    *   The severity of the message, as per RFC 3164.
                    * @param $link
                    *   A link to associate with the message.
                    *
                    * @see watchdog()
                  - * @see drupal_decode_exception()
                  + * @see _drupal_decode_exception()
                    */
                   function watchdog_exception($type, Exception $exception, $message = NULL, $variables = array(), $severity = WATCHDOG_ERROR, $link = NULL) {
                   
                  @@ -1774,7 +2052,7 @@ function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NO
                    * @see theme_status_messages()
                    */
                   function drupal_set_message($message = NULL, $type = 'status', $repeat = TRUE) {
                  -  if ($message) {
                  +  if ($message || $message === '0' || $message === 0) {
                       if (!isset($_SESSION['messages'][$type])) {
                         $_SESSION['messages'][$type] = array();
                       }
                  @@ -1932,6 +2210,33 @@ function drupal_block_denied($ip) {
                     }
                   }
                   
                  +/**
                  + * Returns a URL-safe, base64 encoded string of highly randomized bytes (over the full 8-bit range).
                  + *
                  + * @param $byte_count
                  + *   The number of random bytes to fetch and base64 encode.
                  + *
                  + * @return string
                  + *   The base64 encoded result will have a length of up to 4 * $byte_count.
                  + */
                  +function drupal_random_key($byte_count = 32) {
                  +  return drupal_base64_encode(drupal_random_bytes($byte_count));
                  +}
                  +
                  +/**
                  + * Returns a URL-safe, base64 encoded version of the supplied string.
                  + *
                  + * @param $string
                  + *   The string to convert to base64.
                  + *
                  + * @return string
                  + */
                  +function drupal_base64_encode($string) {
                  +  $data = base64_encode($string);
                  +  // Modify the output so it's safe to use in URLs.
                  +  return strtr($data, array('+' => '-', '/' => '_', '=' => ''));
                  +}
                  +
                   /**
                    * Returns a string of highly randomized bytes (over the full 8-bit range).
                    *
                  @@ -1945,38 +2250,34 @@ function drupal_block_denied($ip) {
                    */
                   function drupal_random_bytes($count)  {
                     // $random_state does not use drupal_static as it stores random bytes.
                  -  static $random_state, $bytes, $php_compatible;
                  -  // Initialize on the first call. The contents of $_SERVER includes a mix of
                  -  // user-specific and system information that varies a little with each page.
                  -  if (!isset($random_state)) {
                  -    $random_state = print_r($_SERVER, TRUE);
                  -    if (function_exists('getmypid')) {
                  -      // Further initialize with the somewhat random PHP process ID.
                  -      $random_state .= getmypid();
                  -    }
                  -    $bytes = '';
                  -  }
                  -  if (strlen($bytes) < $count) {
                  +  static $random_state, $bytes, $has_openssl;
                  +
                  +  $missing_bytes = $count - strlen($bytes);
                  +
                  +  if ($missing_bytes > 0) {
                       // PHP versions prior 5.3.4 experienced openssl_random_pseudo_bytes()
                       // locking on Windows and rendered it unusable.
                  -    if (!isset($php_compatible)) {
                  -      $php_compatible = version_compare(PHP_VERSION, '5.3.4', '>=');
                  +    if (!isset($has_openssl)) {
                  +      $has_openssl = version_compare(PHP_VERSION, '5.3.4', '>=') && function_exists('openssl_random_pseudo_bytes');
                       }
                  -    // /dev/urandom is available on many *nix systems and is considered the
                  -    // best commonly available pseudo-random source.
                  -    if ($fh = @fopen('/dev/urandom', 'rb')) {
                  +
                  +    // openssl_random_pseudo_bytes() will find entropy in a system-dependent
                  +    // way.
                  +    if ($has_openssl) {
                  +      $bytes .= openssl_random_pseudo_bytes($missing_bytes);
                  +    }
                  +
                  +    // Else, read directly from /dev/urandom, which is available on many *nix
                  +    // systems and is considered cryptographically secure.
                  +    elseif ($fh = @fopen('/dev/urandom', 'rb')) {
                         // PHP only performs buffered reads, so in reality it will always read
                         // at least 4096 bytes. Thus, it costs nothing extra to read and store
                         // that much so as to speed any additional invocations.
                  -      $bytes .= fread($fh, max(4096, $count));
                  +      $bytes .= fread($fh, max(4096, $missing_bytes));
                         fclose($fh);
                       }
                  -    // openssl_random_pseudo_bytes() will find entropy in a system-dependent
                  -    // way.
                  -    elseif ($php_compatible && function_exists('openssl_random_pseudo_bytes')) {
                  -      $bytes .= openssl_random_pseudo_bytes($count - strlen($bytes));
                  -    }
                  -    // If /dev/urandom is not available or returns no bytes, this loop will
                  +
                  +    // If we couldn't get enough entropy, this simple hash-based PRNG will
                       // generate a good set of pseudo-random bytes on any system.
                       // Note that it may be important that our $random_state is passed
                       // through hash() prior to being rolled into $output, that the two hash()
                  @@ -1984,9 +2285,23 @@ function drupal_random_bytes($count)  {
                       // the microtime() - is prepended rather than appended. This is to avoid
                       // directly leaking $random_state via the $output stream, which could
                       // allow for trivial prediction of further "random" numbers.
                  -    while (strlen($bytes) < $count) {
                  -      $random_state = hash('sha256', microtime() . mt_rand() . $random_state);
                  -      $bytes .= hash('sha256', mt_rand() . $random_state, TRUE);
                  +    if (strlen($bytes) < $count) {
                  +      // Initialize on the first call. The contents of $_SERVER includes a mix of
                  +      // user-specific and system information that varies a little with each page.
                  +      if (!isset($random_state)) {
                  +        $random_state = print_r($_SERVER, TRUE);
                  +        if (function_exists('getmypid')) {
                  +          // Further initialize with the somewhat random PHP process ID.
                  +          $random_state .= getmypid();
                  +        }
                  +        $bytes = '';
                  +      }
                  +
                  +      do {
                  +        $random_state = hash('sha256', microtime() . mt_rand() . $random_state);
                  +        $bytes .= hash('sha256', mt_rand() . $random_state, TRUE);
                  +      }
                  +      while (strlen($bytes) < $count);
                       }
                     }
                     $output = substr($bytes, 0, $count);
                  @@ -1997,17 +2312,21 @@ function drupal_random_bytes($count)  {
                   /**
                    * Calculates a base-64 encoded, URL-safe sha-256 hmac.
                    *
                  - * @param $data
                  + * @param string $data
                    *   String to be validated with the hmac.
                  - * @param $key
                  + * @param string $key
                    *   A secret string key.
                    *
                  - * @return
                  + * @return string
                    *   A base-64 encoded sha-256 hmac, with + replaced with -, / with _ and
                    *   any = padding characters removed.
                    */
                   function drupal_hmac_base64($data, $key) {
                  -  $hmac = base64_encode(hash_hmac('sha256', $data, $key, TRUE));
                  +  // Casting $data and $key to strings here is necessary to avoid empty string
                  +  // results of the hash function if they are not scalar values. As this
                  +  // function is used in security-critical contexts like token validation it is
                  +  // important that it never returns an empty string.
                  +  $hmac = base64_encode(hash_hmac('sha256', (string) $data, (string) $key, TRUE));
                     // Modify the hmac so it's safe to use in URLs.
                     return strtr($hmac, array('+' => '-', '/' => '_', '=' => ''));
                   }
                  @@ -2108,7 +2427,7 @@ function drupal_array_merge_deep_array($arrays) {
                    * @return Object - the user object.
                    */
                   function drupal_anonymous_user() {
                  -  $user = new stdClass();
                  +  $user = variable_get('drupal_anonymous_user_object', new stdClass);
                     $user->uid = 0;
                     $user->hostname = ip_address();
                     $user->roles = array();
                  @@ -2127,7 +2446,7 @@ function drupal_anonymous_user() {
                    *   drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
                    * @endcode
                    *
                  - * @param $phase
                  + * @param int $phase
                    *   A constant telling which phase to bootstrap to. When you bootstrap to a
                    *   particular phase, all earlier phases are run automatically. Possible
                    *   values:
                  @@ -2140,11 +2459,11 @@ function drupal_anonymous_user() {
                    *   - DRUPAL_BOOTSTRAP_LANGUAGE: Finds out the language of the page.
                    *   - DRUPAL_BOOTSTRAP_FULL: Fully loads Drupal. Validates and fixes input
                    *     data.
                  - * @param $new_phase
                  + * @param boolean $new_phase
                    *   A boolean, set to FALSE if calling drupal_bootstrap from inside a
                    *   function called from drupal_bootstrap (recursion).
                    *
                  - * @return
                  + * @return int
                    *   The most recently completed phase.
                    */
                   function drupal_bootstrap($phase = NULL, $new_phase = TRUE) {
                  @@ -2166,12 +2485,13 @@ function drupal_bootstrap($phase = NULL, $new_phase = TRUE) {
                     // bootstrap state.
                     static $stored_phase = -1;
                   
                  -  // When not recursing, store the phase name so it's not forgotten while
                  -  // recursing.
                  -  if ($new_phase) {
                  -    $final_phase = $phase;
                  -  }
                     if (isset($phase)) {
                  +    // When not recursing, store the phase name so it's not forgotten while
                  +    // recursing but take care of not going backwards.
                  +    if ($new_phase && $phase >= $stored_phase) {
                  +      $final_phase = $phase;
                  +    }
                  +
                       // Call a phase if it has not been called before and is below the requested
                       // phase.
                       while ($phases && $phase > $stored_phase && $final_phase > $stored_phase) {
                  @@ -2312,6 +2632,10 @@ function _drupal_bootstrap_configuration() {
                     timer_start('page');
                     // Initialize the configuration, including variables from settings.php.
                     drupal_settings_initialize();
                  +
                  +  // Sanitize unsafe keys from the request.
                  +  require_once DRUPAL_ROOT . '/includes/request-sanitizer.inc';
                  +  DrupalRequestSanitizer::sanitize();
                   }
                   
                   /**
                  @@ -2420,6 +2744,9 @@ function _drupal_bootstrap_database() {
                     // the install or upgrade process.
                     spl_autoload_register('drupal_autoload_class');
                     spl_autoload_register('drupal_autoload_interface');
                  +  if (version_compare(PHP_VERSION, '5.4') >= 0) {
                  +    spl_autoload_register('drupal_autoload_trait');
                  +  }
                   }
                   
                   /**
                  @@ -2437,6 +2764,31 @@ function _drupal_bootstrap_variables() {
                     // Load bootstrap modules.
                     require_once DRUPAL_ROOT . '/includes/module.inc';
                     module_load_all(TRUE);
                  +
                  +  // Sanitize the destination parameter (which is often used for redirects) to
                  +  // prevent open redirect attacks leading to other domains. Sanitize both
                  +  // $_GET['destination'] and $_REQUEST['destination'] to protect code that
                  +  // relies on either, but do not sanitize $_POST to avoid interfering with
                  +  // unrelated form submissions. The sanitization happens here because
                  +  // url_is_external() requires the variable system to be available.
                  +  if (isset($_GET['destination']) || isset($_REQUEST['destination'])) {
                  +    require_once DRUPAL_ROOT . '/includes/common.inc';
                  +    // If the destination is an external URL, remove it.
                  +    if (isset($_GET['destination']) && url_is_external($_GET['destination'])) {
                  +      unset($_GET['destination']);
                  +      unset($_REQUEST['destination']);
                  +    }
                  +    // Use the DrupalRequestSanitizer to ensure that the destination's query
                  +    // parameters are not dangerous.
                  +    if (isset($_GET['destination'])) {
                  +      DrupalRequestSanitizer::cleanDestination();
                  +    }
                  +    // If there's still something in $_REQUEST['destination'] that didn't come
                  +    // from $_GET, check it too.
                  +    if (isset($_REQUEST['destination']) && (!isset($_GET['destination']) || $_REQUEST['destination'] != $_GET['destination']) && url_is_external($_REQUEST['destination'])) {
                  +      unset($_REQUEST['destination']);
                  +    }
                  +  }
                   }
                   
                   /**
                  @@ -2459,7 +2811,7 @@ function _drupal_bootstrap_page_header() {
                    * @see drupal_bootstrap()
                    */
                   function drupal_get_bootstrap_phase() {
                  -  return drupal_bootstrap();
                  +  return drupal_bootstrap(NULL, FALSE);
                   }
                   
                   /**
                  @@ -2573,7 +2925,7 @@ function drupal_installation_attempted() {
                    *
                    * This would include implementations of hook_install(), which could run
                    * during the Drupal installation phase, and might also be run during
                  - * non-installation time, such as while installing the module from the the
                  + * non-installation time, such as while installing the module from the
                    * module administration page.
                    *
                    * Example usage:
                  @@ -2715,10 +3067,14 @@ function language_list($field = 'language') {
                   }
                   
                   /**
                  - * Returns the default language used on the site
                  + * Returns the default language, as an object, or one of its properties.
                    *
                    * @param $property
                  - *   Optional property of the language object to return
                  + *   (optional) The property of the language object to return.
                  + *
                  + * @return
                  + *   Either the language object for the default language used on the site,
                  + *   or the property of that object named in the $property parameter.
                    */
                   function language_default($property = NULL) {
                     $language = variable_get('language_default', (object) array('language' => 'en', 'name' => 'English', 'native' => 'English', 'direction' => 0, 'enabled' => 1, 'plurals' => 0, 'formula' => '', 'domain' => '', 'prefix' => '', 'weight' => 0, 'javascript' => ''));
                  @@ -2870,8 +3226,15 @@ function ip_address() {
                           // Eliminate all trusted IPs.
                           $untrusted = array_diff($forwarded, $reverse_proxy_addresses);
                   
                  -        // The right-most IP is the most specific we can trust.
                  -        $ip_address = array_pop($untrusted);
                  +        if (!empty($untrusted)) {
                  +          // The right-most IP is the most specific we can trust.
                  +          $ip_address = array_pop($untrusted);
                  +        }
                  +        else {
                  +          // All IP addresses in the forwarded array are configured proxy IPs
                  +          // (and thus trusted). We take the leftmost IP.
                  +          $ip_address = array_shift($forwarded);
                  +        }
                         }
                       }
                     }
                  @@ -2888,7 +3251,9 @@ function ip_address() {
                    * Gets the schema definition of a table, or the whole database schema.
                    *
                    * The returned schema will include any modifications made by any
                  - * module that implements hook_schema_alter().
                  + * module that implements hook_schema_alter(). To get the schema without
                  + * modifications, use drupal_get_schema_unprocessed().
                  + *
                    *
                    * @param $table
                    *   The name of the table. If not given, the schema of all tables is returned.
                  @@ -3043,6 +3408,22 @@ function drupal_autoload_class($class) {
                     return _registry_check_code('class', $class);
                   }
                   
                  +/**
                  + * Confirms that a trait is available.
                  + *
                  + * This function is rarely called directly. Instead, it is registered as an
                  + * spl_autoload() handler, and PHP calls it for us when necessary.
                  + *
                  + * @param string $trait
                  + *   The name of the trait to check or load.
                  + *
                  + * @return bool
                  + *   TRUE if the trait is currently available, FALSE otherwise.
                  + */
                  +function drupal_autoload_trait($trait) {
                  +  return _registry_check_code('trait', $trait);
                  +}
                  +
                   /**
                    * Checks for a resource in the registry.
                    *
                  @@ -3061,7 +3442,7 @@ function drupal_autoload_class($class) {
                   function _registry_check_code($type, $name = NULL) {
                     static $lookup_cache, $cache_update_needed;
                   
                  -  if ($type == 'class' && class_exists($name) || $type == 'interface' && interface_exists($name)) {
                  +  if ($type == 'class' && class_exists($name) || $type == 'interface' && interface_exists($name) || $type == 'trait' && trait_exists($name)) {
                       return TRUE;
                     }
                   
                  @@ -3094,7 +3475,7 @@ function _registry_check_code($type, $name = NULL) {
                     $cache_key = $type[0] . $name;
                     if (isset($lookup_cache[$cache_key])) {
                       if ($lookup_cache[$cache_key]) {
                  -      require_once DRUPAL_ROOT . '/' . $lookup_cache[$cache_key];
                  +      include_once DRUPAL_ROOT . '/' . $lookup_cache[$cache_key];
                       }
                       return (bool) $lookup_cache[$cache_key];
                     }
                  @@ -3102,10 +3483,13 @@ function _registry_check_code($type, $name = NULL) {
                     // This function may get called when the default database is not active, but
                     // there is no reason we'd ever want to not use the default database for
                     // this query.
                  -  $file = Database::getConnection('default', 'default')->query("SELECT filename FROM {registry} WHERE name = :name AND type = :type", array(
                  -      ':name' => $name,
                  -      ':type' => $type,
                  -    ))
                  +  $file = Database::getConnection('default', 'default')
                  +    ->select('registry', 'r', array('target' => 'default'))
                  +    ->fields('r', array('filename'))
                  +    // Use LIKE here to make the query case-insensitive.
                  +    ->condition('r.name', db_like($name), 'LIKE')
                  +    ->condition('r.type', $type)
                  +    ->execute()
                       ->fetchField();
                   
                     // Flag that we've run a lookup query and need to update the cache.
                  @@ -3116,7 +3500,7 @@ function _registry_check_code($type, $name = NULL) {
                     $lookup_cache[$cache_key] = $file;
                   
                     if ($file) {
                  -    require_once DRUPAL_ROOT . '/' . $file;
                  +    include_once DRUPAL_ROOT . '/' . $file;
                       return TRUE;
                     }
                     else {
                  @@ -3253,8 +3637,8 @@ function registry_update() {
                    * However, the above line of code does not work, because PHP only allows static
                    * variables to be initializied by literal values, and does not allow static
                    * variables to be assigned to references.
                  - * - http://php.net/manual/en/language.variables.scope.php#language.variables.scope.static
                  - * - http://php.net/manual/en/language.variables.scope.php#language.variables.scope.references
                  + * - http://php.net/manual/language.variables.scope.php#language.variables.scope.static
                  + * - http://php.net/manual/language.variables.scope.php#language.variables.scope.references
                    * The example below shows the syntax needed to work around both limitations.
                    * For benchmarks and more information, see http://drupal.org/node/619666.
                    *
                  @@ -3279,11 +3663,9 @@ function registry_update() {
                    * @param $default_value
                    *   Optional default value.
                    * @param $reset
                  - *   TRUE to reset a specific named variable, or all variables if $name is NULL.
                  - *   Resetting every variable should only be used, for example, for running
                  - *   unit tests with a clean environment. Should be used only though via
                  - *   function drupal_static_reset() and the return value should not be used in
                  - *   this case.
                  + *   TRUE to reset one or all variables(s). This parameter is only used
                  + *   internally and should not be passed in; use drupal_static_reset() instead.
                  + *   (This function's return value should not be used when TRUE is passed in.)
                    *
                    * @return
                    *   Returns a variable by reference.
                  @@ -3328,6 +3710,8 @@ function &drupal_static($name, $default_value = NULL, $reset = FALSE) {
                    *
                    * @param $name
                    *   Name of the static variable to reset. Omit to reset all variables.
                  + *   Resetting all variables should only be used, for example, for running unit
                  + *   tests with a clean environment.
                    */
                   function drupal_static_reset($name = NULL) {
                     drupal_static($name, NULL, TRUE);
                  @@ -3443,3 +3827,34 @@ function drupal_check_memory_limit($required, $memory_limit = NULL) {
                     // - The memory limit is greater than the memory required for the operation.
                     return ((!$memory_limit) || ($memory_limit == -1) || (parse_size($memory_limit) >= parse_size($required)));
                   }
                  +
                  +/**
                  + * Invalidates a PHP file from any active opcode caches.
                  + *
                  + * If the opcode cache does not support the invalidation of individual files,
                  + * the entire cache will be flushed.
                  + *
                  + * @param string $filepath
                  + *   The absolute path of the PHP file to invalidate.
                  + */
                  +function drupal_clear_opcode_cache($filepath) {
                  +  if (!defined('PHP_VERSION_ID') || PHP_VERSION_ID < 50300) {
                  +    // Below PHP 5.3, clearstatcache does not accept any function parameters.
                  +    clearstatcache();
                  +  }
                  +  else {
                  +    clearstatcache(TRUE, $filepath);
                  +  }
                  +
                  +  // Zend OPcache.
                  +  if (function_exists('opcache_invalidate')) {
                  +    opcache_invalidate($filepath, TRUE);
                  +  }
                  +  // APC.
                  +  if (function_exists('apc_delete_file')) {
                  +    // apc_delete_file() throws a PHP warning in case the specified file was
                  +    // not compiled yet.
                  +    // @see http://php.net/apc-delete-file
                  +    @apc_delete_file($filepath);
                  +  }
                  +}
                  diff --git a/site/includes/cache.inc b/site/includes/cache.inc
                  index 09f4d75..945dd66 100644
                  --- a/site/includes/cache.inc
                  +++ b/site/includes/cache.inc
                  @@ -14,6 +14,7 @@
                    *
                    * @param $bin
                    *   The cache bin for which the cache object should be returned.
                  + *
                    * @return DrupalCacheInterface
                    *   The cache object associated with the specified bin.
                    *
                  @@ -98,9 +99,11 @@ function cache_get_multiple(array &$cids, $bin = 'cache') {
                    * @param $data
                    *   The data to store in the cache. Complex data types will be automatically
                    *   serialized before insertion. Strings will be stored as plain text and are
                  - *   not serialized.
                  + *   not serialized. Some storage engines only allow objects up to a maximum of
                  + *   1MB in size to be stored by default. When caching large arrays or similar,
                  + *   take care to ensure $data does not exceed this size.
                    * @param $bin
                  - *   The cache bin to store the data in. Valid core values are:
                  + *   (optional) The cache bin to store the data in. Valid core values are:
                    *   - cache: (default) Generic cache storage bin (used for theme registry,
                    *     locale date, list of simpletest tests, etc.).
                    *   - cache_block: Stores the content of various blocks.
                  @@ -119,7 +122,12 @@ function cache_get_multiple(array &$cids, $bin = 'cache') {
                    *     the administrator panel.
                    *   - cache_path: Stores the system paths that have an alias.
                    * @param $expire
                  - *   One of the following values:
                  + *   (optional) Controls the maximum lifetime of this cache entry. Note that
                  + *   caches might be subject to clearing at any time, so this setting does not
                  + *   guarantee a minimum lifetime. With this in mind, the cache should not be
                  + *   used for data that must be kept during a cache clear, like sessions.
                  + *
                  + *   Use one of the following values:
                    *   - CACHE_PERMANENT: Indicates that the item should never be removed unless
                    *     explicitly told to using cache_clear_all() with a cache ID.
                    *   - CACHE_TEMPORARY: Indicates that the item should be removed at the next
                  @@ -254,10 +262,17 @@ interface DrupalCacheInterface {
                      *   The cache ID of the data to store.
                      * @param $data
                      *   The data to store in the cache. Complex data types will be automatically
                  -   *   serialized before insertion.
                  -   *   Strings will be stored as plain text and not serialized.
                  +   *   serialized before insertion. Strings will be stored as plain text and not
                  +   *   serialized. Some storage engines only allow objects up to a maximum of
                  +   *   1MB in size to be stored by default. When caching large arrays or
                  +   *   similar, take care to ensure $data does not exceed this size.
                      * @param $expire
                  -   *   One of the following values:
                  +   *   (optional) Controls the maximum lifetime of this cache entry. Note that
                  +   *   caches might be subject to clearing at any time, so this setting does not
                  +   *   guarantee a minimum lifetime. With this in mind, the cache should not be
                  +   *   used for data that must be kept during a cache clear, like sessions.
                  +   *
                  +   *   Use one of the following values:
                      *   - CACHE_PERMANENT: Indicates that the item should never be removed unless
                      *     explicitly told to using cache_clear_all() with a cache ID.
                      *   - CACHE_TEMPORARY: Indicates that the item should be removed at the next
                  diff --git a/site/includes/common.inc b/site/includes/common.inc
                  index 262e1c5..f61d1eb 100644
                  --- a/site/includes/common.inc
                  +++ b/site/includes/common.inc
                  @@ -458,7 +458,7 @@ function drupal_get_query_array($query) {
                     $result = array();
                     if (!empty($query)) {
                       foreach (explode('&', $query) as $param) {
                  -      $param = explode('=', $param);
                  +      $param = explode('=', $param, 2);
                         $result[$param[0]] = isset($param[1]) ? rawurldecode($param[1]) : '';
                       }
                     }
                  @@ -487,7 +487,7 @@ function drupal_http_build_query(array $query, $parent = '') {
                     $params = array();
                   
                     foreach ($query as $key => $value) {
                  -    $key = ($parent ? $parent . '[' . rawurlencode($key) . ']' : rawurlencode($key));
                  +    $key = $parent ? $parent . rawurlencode('[' . $key . ']') : rawurlencode($key);
                   
                       // Recurse into children.
                       if (is_array($value)) {
                  @@ -544,37 +544,32 @@ function drupal_get_destination() {
                   }
                   
                   /**
                  - * Parses a system URL string into an associative array suitable for url().
                  + * Parses a URL string into its path, query, and fragment components.
                    *
                  - * This function should only be used for URLs that have been generated by the
                  - * system, such as via url(). It should not be used for URLs that come from
                  - * external sources, or URLs that link to external resources.
                  + * This function splits both internal paths like @code node?b=c#d @endcode and
                  + * external URLs like @code https://example.com/a?b=c#d @endcode into their
                  + * component parts. See
                  + * @link http://tools.ietf.org/html/rfc3986#section-3 RFC 3986 @endlink for an
                  + * explanation of what the component parts are.
                    *
                  - * The returned array contains a 'path' that may be passed separately to url().
                  - * For example:
                  - * @code
                  - *   $options = drupal_parse_url($_GET['destination']);
                  - *   $my_url = url($options['path'], $options);
                  - *   $my_link = l('Example link', $options['path'], $options);
                  - * @endcode
                  + * Note that, unlike the RFC, when passed an external URL, this function
                  + * groups the scheme, authority, and path together into the path component.
                    *
                  - * This is required, because url() does not support relative URLs containing a
                  - * query string or fragment in its $path argument. Instead, any query string
                  - * needs to be parsed into an associative query parameter array in
                  - * $options['query'] and the fragment into $options['fragment'].
                  + * @param string $url
                  + *   The internal path or external URL string to parse.
                    *
                  - * @param $url
                  - *   The URL string to parse, f.e. $_GET['destination'].
                  - *
                  - * @return
                  - *   An associative array containing the keys:
                  - *   - 'path': The path of the URL. If the given $url is external, this includes
                  - *     the scheme and host.
                  - *   - 'query': An array of query parameters of $url, if existent.
                  - *   - 'fragment': The fragment of $url, if existent.
                  + * @return array
                  + *   An associative array containing:
                  + *   - path: The path component of $url. If $url is an external URL, this
                  + *     includes the scheme, authority, and path.
                  + *   - query: An array of query parameters from $url, if they exist.
                  + *   - fragment: The fragment component from $url, if it exists.
                    *
                  - * @see url()
                    * @see drupal_goto()
                  + * @see l()
                  + * @see url()
                  + * @see http://tools.ietf.org/html/rfc3986
                  + *
                    * @ingroup php_wrappers
                    */
                   function drupal_parse_url($url) {
                  @@ -616,8 +611,9 @@ function drupal_parse_url($url) {
                     }
                     // The 'q' parameter contains the path of the current page if clean URLs are
                     // disabled. It overrides the 'path' of the URL when present, even if clean
                  -  // URLs are enabled, due to how Apache rewriting rules work.
                  -  if (isset($options['query']['q'])) {
                  +  // URLs are enabled, due to how Apache rewriting rules work. The path
                  +  // parameter must be a string.
                  +  if (isset($options['query']['q']) && is_string($options['query']['q'])) {
                       $options['path'] = $options['query']['q'];
                       unset($options['query']['q']);
                     }
                  @@ -693,6 +689,13 @@ function drupal_goto($path = '', array $options = array(), $http_response_code =
                       $options['fragment'] = $destination['fragment'];
                     }
                   
                  +  // In some cases modules call drupal_goto(current_path()). We need to ensure
                  +  // that such a redirect is not to an external URL.
                  +  if ($path === current_path() && empty($options['external']) && url_is_external($path)) {
                  +    // Force url() to generate a non-external URL.
                  +    $options['external'] = FALSE;
                  +  }
                  +
                     drupal_alter('drupal_goto', $path, $options, $http_response_code);
                   
                     // The 'Location' HTTP header must be absolute.
                  @@ -758,7 +761,8 @@ function drupal_access_denied() {
                    *   - headers: An array containing request headers to send as name/value pairs.
                    *   - method: A string containing the request method. Defaults to 'GET'.
                    *   - data: A string containing the request body, formatted as
                  - *     'param=value¶m=value&...'. Defaults to NULL.
                  + *     'param=value¶m=value&...'; to generate this, use http_build_query().
                  + *     Defaults to NULL.
                    *   - max_redirects: An integer representing how many times a redirect
                    *     may be followed. Defaults to 3.
                    *   - timeout: A float representing the maximum number of seconds the function
                  @@ -783,6 +787,8 @@ function drupal_access_denied() {
                    *     HTTP header names are case-insensitive (RFC 2616, section 4.2), so for
                    *     easy access the array keys are returned in lower case.
                    *   - data: A string containing the response body that was received.
                  + *
                  + * @see http_build_query()
                    */
                   function drupal_http_request($url, array $options = array()) {
                     // Allow an alternate HTTP client library to replace Drupal's default
                  @@ -929,7 +935,7 @@ function drupal_http_request($url, array $options = array()) {
                   
                     // If the server URL has a user then attempt to use basic authentication.
                     if (isset($uri['user'])) {
                  -    $options['headers']['Authorization'] = 'Basic ' . base64_encode($uri['user'] . (isset($uri['pass']) ? ':' . $uri['pass'] : ''));
                  +    $options['headers']['Authorization'] = 'Basic ' . base64_encode($uri['user'] . (isset($uri['pass']) ? ':' . $uri['pass'] : ':'));
                     }
                   
                     // If the database prefix is being used by SimpleTest to run the tests in a copied
                  @@ -990,9 +996,10 @@ function drupal_http_request($url, array $options = array()) {
                     $response = preg_split("/\r\n|\n|\r/", $response);
                   
                     // Parse the response status line.
                  -  list($protocol, $code, $status_message) = explode(' ', trim(array_shift($response)), 3);
                  -  $result->protocol = $protocol;
                  -  $result->status_message = $status_message;
                  +  $response_status_array = _drupal_parse_response_status(trim(array_shift($response)));
                  +  $result->protocol = $response_status_array['http_version'];
                  +  $result->status_message = $response_status_array['reason_phrase'];
                  +  $code = $response_status_array['response_code'];
                   
                     $result->headers = array();
                   
                  @@ -1061,6 +1068,12 @@ function drupal_http_request($url, array $options = array()) {
                   
                     switch ($code) {
                       case 200: // OK
                  +    case 201: // Created
                  +    case 202: // Accepted
                  +    case 203: // Non-Authoritative Information
                  +    case 204: // No Content
                  +    case 205: // Reset Content
                  +    case 206: // Partial Content
                       case 304: // Not modified
                         break;
                       case 301: // Moved permanently
                  @@ -1083,12 +1096,43 @@ function drupal_http_request($url, array $options = array()) {
                         }
                         break;
                       default:
                  -      $result->error = $status_message;
                  +      $result->error = $result->status_message;
                     }
                   
                     return $result;
                   }
                   
                  +/**
                  + * Splits an HTTP response status line into components.
                  + *
                  + * See the @link http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html status line definition @endlink
                  + * in RFC 2616.
                  + *
                  + * @param string $respone
                  + *   The response status line, for example 'HTTP/1.1 500 Internal Server Error'.
                  + *
                  + * @return array
                  + *   Keyed array containing the component parts. If the response is malformed,
                  + *   all possible parts will be extracted. 'reason_phrase' could be empty.
                  + *   Possible keys:
                  + *   - 'http_version'
                  + *   - 'response_code'
                  + *   - 'reason_phrase'
                  + */
                  +function _drupal_parse_response_status($response) {
                  +  $response_array = explode(' ', trim($response), 3);
                  +  // Set up empty values.
                  +  $result = array(
                  +    'reason_phrase' => '',
                  +  );
                  +  $result['http_version'] = $response_array[0];
                  +  $result['response_code'] = $response_array[1];
                  +  if (isset($response_array[2])) {
                  +    $result['reason_phrase'] = $response_array[2];
                  +  }
                  +  return $result;
                  +}
                  +
                   /**
                    * Helper function for determining hosts excluded from needing a proxy.
                    *
                  @@ -1134,7 +1178,7 @@ function _fix_gpc_magic(&$item) {
                    * @param $key
                    *   The key for the item within $_FILES.
                    *
                  - * @see http://php.net/manual/en/features.file-upload.php#42280
                  + * @see http://php.net/manual/features.file-upload.php#42280
                    */
                   function _fix_gpc_magic_files(&$item, $key) {
                     if ($key != 'tmp_name') {
                  @@ -1426,7 +1470,6 @@ function filter_xss_admin($string) {
                    *   valid UTF-8.
                    *
                    * @see drupal_validate_utf8()
                  - * @ingroup sanitization
                    */
                   function filter_xss($string, $allowed_tags = array('a', 'em', 'strong', 'cite', 'blockquote', 'code', 'ul', 'ol', 'li', 'dl', 'dt', 'dd')) {
                     // Only operate on valid UTF-8 strings. This is necessary to prevent cross
                  @@ -1496,7 +1539,7 @@ function _filter_xss_split($m, $store = FALSE) {
                       return '<';
                     }
                   
                  -  if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9]+)([^>]*)>?|()$%', $string, $matches)) {
                  +  if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9\-]+)([^>]*)>?|()$%', $string, $matches)) {
                       // Seriously malformed.
                       return '';
                     }
                  @@ -1728,9 +1771,15 @@ function format_rss_item($title, $link, $description, $args = array()) {
                    *     - 'key': element name
                    *     - 'value': element contents
                    *     - 'attributes': associative array of element attributes
                  + *     - 'encoded': TRUE if 'value' is already encoded
                    *
                    * In both cases, 'value' can be a simple string, or it can be another array
                    * with the same format as $array itself for nesting.
                  + *
                  + * If 'encoded' is TRUE it is up to the caller to ensure that 'value' is either
                  + * entity-encoded or CDATA-escaped. Using this option is not recommended when
                  + * working with untrusted user input, since failing to escape the data
                  + * correctly has security implications.
                    */
                   function format_xml_elements($array) {
                     $output = '';
                  @@ -1743,7 +1792,7 @@ function format_xml_elements($array) {
                           }
                   
                           if (isset($value['value']) && $value['value'] != '') {
                  -          $output .= '>' . (is_array($value['value']) ? format_xml_elements($value['value']) : check_plain($value['value'])) . '\n";
                  +          $output .= '>' . (is_array($value['value']) ? format_xml_elements($value['value']) : (!empty($value['encoded']) ? $value['value'] : check_plain($value['value']))) . '\n";
                           }
                           else {
                             $output .= " />\n";
                  @@ -1950,7 +1999,7 @@ function format_interval($interval, $granularity = 2, $langcode = NULL) {
                    *   get interpreted as date format characters.
                    * @param $timezone
                    *   (optional) Time zone identifier, as described at
                  - *   http://php.net/manual/en/timezones.php Defaults to the time zone used to
                  + *   http://php.net/manual/timezones.php Defaults to the time zone used to
                    *   display the page.
                    * @param $langcode
                    *   (optional) Language code to translate to. Defaults to the language used to
                  @@ -2188,14 +2237,11 @@ function url($path = NULL, array $options = array()) {
                       'prefix' => ''
                     );
                   
                  +  // Determine whether this is an external link, but ensure that the current
                  +  // path is always treated as internal by default (to prevent external link
                  +  // injection vulnerabilities).
                     if (!isset($options['external'])) {
                  -    // Return an external link if $path contains an allowed absolute URL. Only
                  -    // call the slow drupal_strip_dangerous_protocols() if $path contains a ':'
                  -    // before any / ? or #. Note: we could use url_is_external($path) here, but
                  -    // that would require another function call, and performance inside url() is
                  -    // critical.
                  -    $colonpos = strpos($path, ':');
                  -    $options['external'] = ($colonpos !== FALSE && !preg_match('![/?#]!', substr($path, 0, $colonpos)) && drupal_strip_dangerous_protocols($path) == $path);
                  +    $options['external'] = $path === $_GET['q'] ? FALSE : url_is_external($path);
                     }
                   
                     // Preserve the original path before altering or aliasing.
                  @@ -2233,6 +2279,11 @@ function url($path = NULL, array $options = array()) {
                       return $path . $options['fragment'];
                     }
                   
                  +  // Strip leading slashes from internal paths to prevent them becoming external
                  +  // URLs without protocol. /example.com should not be turned into
                  +  // //example.com.
                  +  $path = ltrim($path, '/');
                  +
                     global $base_url, $base_secure_url, $base_insecure_url;
                   
                     // The base_url might be rewritten from the language rewrite in domain mode.
                  @@ -2310,10 +2361,21 @@ function url($path = NULL, array $options = array()) {
                    */
                   function url_is_external($path) {
                     $colonpos = strpos($path, ':');
                  -  // Avoid calling drupal_strip_dangerous_protocols() if there is any
                  -  // slash (/), hash (#) or question_mark (?) before the colon (:)
                  -  // occurrence - if any - as this would clearly mean it is not a URL.
                  -  return $colonpos !== FALSE && !preg_match('![/?#]!', substr($path, 0, $colonpos)) && drupal_strip_dangerous_protocols($path) == $path;
                  +  // Some browsers treat \ as / so normalize to forward slashes.
                  +  $path = str_replace('\\', '/', $path);
                  +  // If the path starts with 2 slashes then it is always considered an external
                  +  // URL without an explicit protocol part.
                  +  return (strpos($path, '//') === 0)
                  +    // Leading control characters may be ignored or mishandled by browsers, so
                  +    // assume such a path may lead to an external location. The \p{C} character
                  +    // class matches all UTF-8 control, unassigned, and private characters.
                  +    || (preg_match('/^\p{C}/u', $path) !== 0)
                  +    // Avoid calling drupal_strip_dangerous_protocols() if there is any slash
                  +    // (/), hash (#) or question_mark (?) before the colon (:) occurrence - if
                  +    // any - as this would clearly mean it is not a URL.
                  +    || ($colonpos !== FALSE
                  +      && !preg_match('![/?#]!', substr($path, 0, $colonpos))
                  +      && drupal_strip_dangerous_protocols($path) == $path);
                   }
                   
                   /**
                  @@ -2595,6 +2657,15 @@ function drupal_deliver_html_page($page_callback_result) {
                     global $language;
                     drupal_add_http_header('Content-Language', $language->language);
                   
                  +  // By default, do not allow the site to be rendered in an iframe on another
                  +  // domain, but provide a variable to override this. If the code running for
                  +  // this page request already set the X-Frame-Options header earlier, don't
                  +  // overwrite it here.
                  +  $frame_options = variable_get('x_frame_options', 'SAMEORIGIN');
                  +  if ($frame_options && is_null(drupal_get_http_header('X-Frame-Options'))) {
                  +    drupal_add_http_header('X-Frame-Options', $frame_options);
                  +  }
                  +
                     // Menu status constants are integers; page content is a string or array.
                     if (is_int($page_callback_result)) {
                       // @todo: Break these up into separate functions?
                  @@ -2610,7 +2681,10 @@ function drupal_deliver_html_page($page_callback_result) {
                   
                           // Keep old path for reference, and to allow forms to redirect to it.
                           if (!isset($_GET['destination'])) {
                  -          $_GET['destination'] = $_GET['q'];
                  +          // Make sure that the current path is not interpreted as external URL.
                  +          if (!url_is_external($_GET['q'])) {
                  +            $_GET['destination'] = $_GET['q'];
                  +          }
                           }
                   
                           $path = drupal_get_normal_path(variable_get('site_404', ''));
                  @@ -2639,7 +2713,10 @@ function drupal_deliver_html_page($page_callback_result) {
                   
                           // Keep old path for reference, and to allow forms to redirect to it.
                           if (!isset($_GET['destination'])) {
                  -          $_GET['destination'] = $_GET['q'];
                  +          // Make sure that the current path is not interpreted as external URL.
                  +          if (!url_is_external($_GET['q'])) {
                  +            $_GET['destination'] = $_GET['q'];
                  +          }
                           }
                   
                           $path = drupal_get_normal_path(variable_get('site_403', ''));
                  @@ -2703,6 +2780,7 @@ function drupal_page_footer() {
                     _registry_check_code(REGISTRY_WRITE_LOOKUP_CACHE);
                     drupal_cache_system_paths();
                     module_implements_write_cache();
                  +  drupal_file_scan_write_cache();
                     system_run_automated_cron();
                   }
                   
                  @@ -2764,11 +2842,11 @@ function drupal_map_assoc($array, $function = NULL) {
                    * into script execution a call such as set_time_limit(20) is made, the
                    * script will run for a total of 45 seconds before timing out.
                    *
                  - * It also means that it is possible to decrease the total time limit if
                  - * the sum of the new time limit and the current time spent running the
                  - * script is inferior to the original time limit. It is inherent to the way
                  - * set_time_limit() works, it should rather be called with an appropriate
                  - * value every time you need to allocate a certain amount of time
                  + * If the current time limit is not unlimited it is possible to decrease the
                  + * total time limit if the sum of the new time limit and the current time spent
                  + * running the script is inferior to the original time limit. It is inherent to
                  + * the way set_time_limit() works, it should rather be called with an
                  + * appropriate value every time you need to allocate a certain amount of time
                    * to execute a task than only once at the beginning of the script.
                    *
                    * Before calling set_time_limit(), we check if this function is available
                  @@ -2785,7 +2863,11 @@ function drupal_map_assoc($array, $function = NULL) {
                    */
                   function drupal_set_time_limit($time_limit) {
                     if (function_exists('set_time_limit')) {
                  -    @set_time_limit($time_limit);
                  +    $current = ini_get('max_execution_time');
                  +    // Do not set time limit if it is currently unlimited.
                  +    if ($current != 0) {
                  +      @set_time_limit($time_limit);
                  +    }
                     }
                   }
                   
                  @@ -2966,6 +3048,13 @@ function drupal_add_html_head_link($attributes, $header = FALSE) {
                    */
                   function drupal_add_css($data = NULL, $options = NULL) {
                     $css = &drupal_static(__FUNCTION__, array());
                  +  $count = &drupal_static(__FUNCTION__ . '_count', 0);
                  +
                  +  // If the $css variable has been reset with drupal_static_reset(), there is
                  +  // no longer any CSS being tracked, so set the counter back to 0 also.
                  +  if (count($css) === 0) {
                  +    $count = 0;
                  +  }
                   
                     // Construct the options, taking the defaults into consideration.
                     if (isset($options)) {
                  @@ -3001,7 +3090,8 @@ function drupal_add_css($data = NULL, $options = NULL) {
                       }
                   
                       // Always add a tiny value to the weight, to conserve the insertion order.
                  -    $options['weight'] += count($css) / 1000;
                  +    $options['weight'] += $count / 1000;
                  +    $count++;
                   
                       // Add the data to the CSS array depending on the type.
                       switch ($options['type']) {
                  @@ -3448,7 +3538,11 @@ function drupal_pre_render_styles($elements) {
                               $import_batch = array_slice($import, 0, 31);
                               $import = array_slice($import, 31);
                               $element = $style_element_defaults;
                  -            $element['#value'] = implode("\n", $import_batch);
                  +            // This simplifies the JavaScript regex, allowing each line
                  +            // (separated by \n) to be treated as a completely different string.
                  +            // This means that we can use ^ and $ on one line at a time, and not
                  +            // worry about style tags since they'll never match the regex.
                  +            $element['#value'] = "\n" . implode("\n", $import_batch) . "\n";
                               $element['#attributes']['media'] = $group['media'];
                               $element['#browsers'] = $group['browsers'];
                               $elements[] = $element;
                  @@ -3673,17 +3767,23 @@ function drupal_load_stylesheet($file, $optimize = NULL, $reset_basepath = TRUE)
                     if ($basepath && !file_uri_scheme($file)) {
                       $file = $basepath . '/' . $file;
                     }
                  +  // Store the parent base path to restore it later.
                  +  $parent_base_path = $basepath;
                  +  // Set the current base path to process possible child imports.
                     $basepath = dirname($file);
                   
                     // Load the CSS stylesheet. We suppress errors because themes may specify
                     // stylesheets in their .info file that don't exist in the theme's path,
                     // but are merely there to disable certain module CSS files.
                  +  $content = '';
                     if ($contents = @file_get_contents($file)) {
                       // Return the processed stylesheet.
                  -    return drupal_load_stylesheet_content($contents, $_optimize);
                  +    $content = drupal_load_stylesheet_content($contents, $_optimize);
                     }
                   
                  -  return '';
                  +  // Restore the parent base path as the file and its childen are processed.
                  +  $basepath = $parent_base_path;
                  +  return $content;
                   }
                   
                   /**
                  @@ -3700,7 +3800,7 @@ function drupal_load_stylesheet($file, $optimize = NULL, $reset_basepath = TRUE)
                    */
                   function drupal_load_stylesheet_content($contents, $optimize = FALSE) {
                     // Remove multiple charset declarations for standards compliance (and fixing Safari problems).
                  -  $contents = preg_replace('/^@charset\s+[\'"](\S*)\b[\'"];/i', '', $contents);
                  +  $contents = preg_replace('/^@charset\s+[\'"](\S*?)\b[\'"];/i', '', $contents);
                   
                     if ($optimize) {
                       // Perform some safe CSS optimizations.
                  @@ -3719,7 +3819,7 @@ function drupal_load_stylesheet_content($contents, $optimize = FALSE) {
                       // Remove certain whitespace.
                       // There are different conditions for removing leading and trailing
                       // whitespace.
                  -    // @see http://php.net/manual/en/regexp.reference.subpatterns.php
                  +    // @see http://php.net/manual/regexp.reference.subpatterns.php
                       $contents = preg_replace('<
                         # Strip leading and trailing whitespace.
                           \s*([@{};,])\s*
                  @@ -3744,7 +3844,7 @@ function drupal_load_stylesheet_content($contents, $optimize = FALSE) {
                   
                     // Replaces @import commands with the actual stylesheet content.
                     // This happens recursively but omits external files.
                  -  $contents = preg_replace_callback('/@import\s*(?:url\(\s*)?[\'"]?(?![a-z]+:)([^\'"\()]+)[\'"]?\s*\)?\s*;/', '_drupal_load_stylesheet', $contents);
                  +  $contents = preg_replace_callback('/@import\s*(?:url\(\s*)?[\'"]?(?![a-z]+:)(?!\/\/)([^\'"\()]+)[\'"]?\s*\)?\s*;/', '_drupal_load_stylesheet', $contents);
                     return $contents;
                   }
                   
                  @@ -3768,7 +3868,7 @@ function _drupal_load_stylesheet($matches) {
                     // Alter all internal url() paths. Leave external paths alone. We don't need
                     // to normalize absolute paths here (i.e. remove folder/... segments) because
                     // that will be done later.
                  -  return preg_replace('/url\(\s*([\'"]?)(?![a-z]+:|\/+)/i', 'url(\1'. $directory, $file);
                  +  return preg_replace('/url\(\s*([\'"]?)(?![a-z]+:|\/+)([^\'")]+)([\'"]?)\s*\)/i', 'url(\1' . $directory . '\2\3)', $file);
                   }
                   
                   /**
                  @@ -3804,6 +3904,21 @@ function drupal_delete_file_if_stale($uri) {
                    *   The cleaned identifier.
                    */
                   function drupal_clean_css_identifier($identifier, $filter = array(' ' => '-', '_' => '-', '/' => '-', '[' => '-', ']' => '')) {
                  +  // Use the advanced drupal_static() pattern, since this is called very often.
                  +  static $drupal_static_fast;
                  +  if (!isset($drupal_static_fast)) {
                  +    $drupal_static_fast['allow_css_double_underscores'] = &drupal_static(__FUNCTION__ . ':allow_css_double_underscores');
                  +  }
                  +  $allow_css_double_underscores = &$drupal_static_fast['allow_css_double_underscores'];
                  +  if (!isset($allow_css_double_underscores)) {
                  +    $allow_css_double_underscores = variable_get('allow_css_double_underscores', FALSE);
                  +  }
                  +
                  +  // Preserve BEM-style double-underscores depending on custom setting.
                  +  if ($allow_css_double_underscores) {
                  +    $filter['__'] = '__';
                  +  }
                  +
                     // By default, we filter using Drupal's coding standards.
                     $identifier = strtr($identifier, $filter);
                   
                  @@ -3833,7 +3948,14 @@ function drupal_clean_css_identifier($identifier, $filter = array(' ' => '-', '_
                    *   The cleaned class name.
                    */
                   function drupal_html_class($class) {
                  -  return drupal_clean_css_identifier(drupal_strtolower($class));
                  +  // The output of this function will never change, so this uses a normal
                  +  // static instead of drupal_static().
                  +  static $classes = array();
                  +
                  +  if (!isset($classes[$class])) {
                  +    $classes[$class] = drupal_clean_css_identifier(drupal_strtolower($class));
                  +  }
                  +  return $classes[$class];
                   }
                   
                   /**
                  @@ -3868,7 +3990,11 @@ function drupal_html_id($id) {
                     // be merged with content already on the base page. The HTML IDs must be
                     // unique for the fully merged content. Therefore, initialize $seen_ids to
                     // take into account IDs that are already in use on the base page.
                  -  $seen_ids_init = &drupal_static(__FUNCTION__ . ':init');
                  +  static $drupal_static_fast;
                  +  if (!isset($drupal_static_fast['seen_ids_init'])) {
                  +    $drupal_static_fast['seen_ids_init'] = &drupal_static(__FUNCTION__ . ':init');
                  +  }
                  +  $seen_ids_init = &$drupal_static_fast['seen_ids_init'];
                     if (!isset($seen_ids_init)) {
                       // Ideally, Drupal would provide an API to persist state information about
                       // prior page requests in the database, and we'd be able to add this
                  @@ -3913,7 +4039,10 @@ function drupal_html_id($id) {
                         }
                       }
                     }
                  -  $seen_ids = &drupal_static(__FUNCTION__, $seen_ids_init);
                  +  if (!isset($drupal_static_fast['seen_ids'])) {
                  +    $drupal_static_fast['seen_ids'] = &drupal_static(__FUNCTION__, $seen_ids_init);
                  +  }
                  +  $seen_ids = &$drupal_static_fast['seen_ids'];
                   
                     $id = strtr(drupal_strtolower($id), array(' ' => '-', '_' => '-', '[' => '-', ']' => ''));
                   
                  @@ -4097,7 +4226,14 @@ function drupal_region_class($region) {
                    *       else being the same, JavaScript added by a call to drupal_add_js() that
                    *       happened later in the page request gets added to the page after one for
                    *       which drupal_add_js() happened earlier in the page request.
                  - *   - defer: If set to TRUE, the defer attribute is set on the <script>
                  + *   - requires_jquery: Set this to FALSE if the JavaScript you are adding does
                  + *     not have a dependency on jQuery. Defaults to TRUE, except for JavaScript
                  + *     settings where it defaults to FALSE. This is used on sites that have the
                  + *     'javascript_always_use_jquery' variable set to FALSE; on those sites, if
                  + *     all the JavaScript added to the page by drupal_add_js() does not have a
                  + *     dependency on jQuery, then for improved front-end performance Drupal
                  + *     will not add jQuery and related libraries and settings to the page.
                  + *   - defer: If set to TRUE, the defer attribute is set on the  Lorem ipsum",
                  +      'variables' => NULL,
                  +      'severity' => WATCHDOG_NOTICE,
                  +      'link' => 'foo/bar',
                  +      'request_uri' => 'http://example.com?dblog=1',
                  +      'referer' => 'http://example.org?dblog=2',
                  +      'ip' => '0.0.1.0',
                  +      'timestamp' => REQUEST_TIME,
                  +    );
                  +    dblog_watchdog($log);
                  +
                  +    $wid = db_query('SELECT MAX(wid) FROM {watchdog}')->fetchField();
                  +    $this->drupalGet('admin/reports/event/' . $wid);
                  +    $this->assertResponse(200);
                  +    $this->assertNoRaw("");
                  +    $this->assertRaw("alert('foo'); Lorem ipsum");
                  +  }
                  +}
                  diff --git a/site/modules/field/field.api.php b/site/modules/field/field.api.php
                  index 463da55..f937091 100644
                  --- a/site/modules/field/field.api.php
                  +++ b/site/modules/field/field.api.php
                  @@ -1,4 +1,8 @@
                   type == 'article' && !empty($entity->field_image)) {
                  +    foreach ($entity->field_image as $langcode => $items) {
                  +      foreach ($items as $delta => $item) {
                  +        if (!empty($item['fid']) && empty($item['alt'])) {
                  +          $errors['field_image'][$langcode][$delta][] = array(
                  +            'error' => 'field_example_invalid',
                  +            'message' => t('All images in articles need to have an alternative text set.'),
                  +          );
                  +        }
                  +      }
                  +    }
                  +  }
                   }
                   
                   /**
                  @@ -1510,6 +1550,8 @@ function hook_field_attach_prepare_translation_alter(&$entity, $context) {
                    *   - entity_type: The type of the entity to be displayed.
                    *   - entity: The entity with fields to render.
                    *   - langcode: The language code $entity has to be displayed in.
                  + *
                  + * @ingroup field_language
                    */
                   function hook_field_language_alter(&$display_language, $context) {
                     // Do not apply core language fallback rules if they are disabled or if Locale
                  @@ -1531,6 +1573,8 @@ function hook_field_language_alter(&$display_language, $context) {
                    *   An associative array containing:
                    *   - entity_type: The type of the entity the field is attached to.
                    *   - field: A field data structure.
                  + *
                  + * @ingroup field_language
                    */
                   function hook_field_available_languages_alter(&$languages, $context) {
                     // Add an unavailable language.
                  @@ -1581,7 +1625,7 @@ function hook_field_attach_rename_bundle($entity_type, $bundle_old, $bundle_new)
                    * @param $entity_type
                    *   The type of entity; for example, 'node' or 'user'.
                    * @param $bundle
                  - *   The bundle that was just deleted.
                  + *   The name of the bundle that was just deleted.
                    * @param $instances
                    *   An array of all instances that existed for the bundle before it was
                    *   deleted.
                  @@ -1596,7 +1640,7 @@ function hook_field_attach_delete_bundle($entity_type, $bundle, $instances) {
                   }
                   
                   /**
                  - * @} End of "defgroup field_attach".
                  + * @} End of "addtogroup field_attach".
                    */
                   
                   /**
                  @@ -1853,7 +1897,7 @@ function hook_field_storage_write($entity_type, $entity, $op, $fields) {
                         $items = (array) $entity->{$field_name}[$langcode];
                         $delta_count = 0;
                         foreach ($items as $delta => $item) {
                  -        // We now know we have someting to insert.
                  +        // We now know we have something to insert.
                           $do_insert = TRUE;
                           $record = array(
                             'entity_type' => $entity_type,
                  @@ -2256,6 +2300,10 @@ function hook_field_storage_pre_update($entity_type, $entity, &$skip_fields) {
                     }
                   }
                   
                  +/**
                  + * @} End of "addtogroup field_storage
                  + */
                  +
                   /**
                    * Returns the maximum weight for the entity components handled by the module.
                    *
                  @@ -2269,9 +2317,12 @@ function hook_field_storage_pre_update($entity_type, $entity, &$skip_fields) {
                    * @param $context
                    *   The context for which the maximum weight is requested. Either 'form', or
                    *   the name of a view mode.
                  + *
                    * @return
                    *   The maximum weight of the entity's components, or NULL if no components
                    *   were found.
                  + *
                  + * @ingroup field_info
                    */
                   function hook_field_info_max_weight($entity_type, $bundle, $context) {
                     $weights = array();
                  @@ -2283,6 +2334,11 @@ function hook_field_info_max_weight($entity_type, $bundle, $context) {
                     return $weights ? max($weights) : NULL;
                   }
                   
                  +/**
                  + * @addtogroup field_types
                  + * @{
                  + */
                  +
                   /**
                    * Alters the display settings of a field before it gets displayed.
                    *
                  @@ -2349,6 +2405,10 @@ function hook_field_display_ENTITY_TYPE_alter(&$display, $context) {
                     }
                   }
                   
                  +/**
                  + * @} End of "addtogroup field_types
                  + */
                  +
                   /**
                    * Alters the display settings of pseudo-fields before an entity is displayed.
                    *
                  @@ -2364,6 +2424,8 @@ function hook_field_display_ENTITY_TYPE_alter(&$display, $context) {
                    *   - entity_type: The entity type; e.g., 'node' or 'user'.
                    *   - bundle: The bundle name.
                    *   - view_mode: The view mode, e.g. 'full', 'teaser'...
                  + *
                  + * @ingroup field_types
                    */
                   function hook_field_extra_fields_display_alter(&$displays, $context) {
                     if ($context['entity_type'] == 'taxonomy_term' && $context['view_mode'] == 'full') {
                  @@ -2393,6 +2455,8 @@ function hook_field_extra_fields_display_alter(&$displays, $context) {
                    *   - instance: The instance of the field.
                    *
                    * @see hook_field_widget_properties_alter()
                  + *
                  + * @ingroup field_widget
                    */
                   function hook_field_widget_properties_ENTITY_TYPE_alter(&$widget, $context) {
                     // Change a widget's type according to the time of day.
                  @@ -2403,10 +2467,6 @@ function hook_field_widget_properties_ENTITY_TYPE_alter(&$widget, $context) {
                     }
                   }
                   
                  -/**
                  - * @} End of "addtogroup field_storage".
                  - */
                  -
                   /**
                    * @addtogroup field_crud
                    * @{
                  @@ -2602,6 +2662,8 @@ function hook_field_purge_instance($instance) {
                    *
                    * @param $field
                    *   The field being purged.
                  + *
                  + * @ingroup field_storage
                    */
                   function hook_field_storage_purge_field($field) {
                     $table_name = _field_sql_storage_tablename($field);
                  @@ -2619,6 +2681,8 @@ function hook_field_storage_purge_field($field) {
                    *
                    * @param $instance
                    *   The instance being purged.
                  + *
                  + * @ingroup field_storage
                    */
                   function hook_field_storage_purge_field_instance($instance) {
                     db_delete('my_module_field_instance_info')
                  @@ -2640,6 +2704,8 @@ function hook_field_storage_purge_field_instance($instance) {
                    *   The (possibly deleted) field whose data is being purged.
                    * @param $instance
                    *   The deleted field instance whose data is being purged.
                  + *
                  + * @ingroup field_storage
                    */
                   function hook_field_storage_purge($entity_type, $entity, $field, $instance) {
                     list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
                  @@ -2679,6 +2745,8 @@ function hook_field_storage_purge($entity_type, $entity, $field, $instance) {
                    *
                    * @return
                    *   TRUE if the operation is allowed, and FALSE if the operation is denied.
                  + *
                  + * @ingroup field_types
                    */
                   function hook_field_access($op, $field, $entity_type, $entity, $account) {
                     if ($field['field_name'] == 'field_of_interest' && $op == 'edit') {
                  diff --git a/site/modules/field/field.attach.inc b/site/modules/field/field.attach.inc
                  index 30a12d0..897f952 100644
                  --- a/site/modules/field/field.attach.inc
                  +++ b/site/modules/field/field.attach.inc
                  @@ -318,7 +318,7 @@ function _field_invoke_multiple($op, $entity_type, $entities, &$a = NULL, &$b =
                           // Unless a language suggestion is provided we iterate on all the
                           // available languages.
                           $available_languages = field_available_languages($entity_type, $field);
                  -        $language = !empty($options['language'][$id]) ? $options['language'][$id] : $options['language'];
                  +        $language = is_array($options['language']) && !empty($options['language'][$id]) ? $options['language'][$id] : $options['language'];
                           $languages = _field_language_suggestion($available_languages, $language, $field_name);
                           foreach ($languages as $langcode) {
                             $grouped_items[$field_id][$langcode][$id] = isset($entity->{$field_name}[$langcode]) ? $entity->{$field_name}[$langcode] : array();
                  @@ -976,6 +976,12 @@ function field_attach_insert($entity_type, $entity) {
                   /**
                    * Save field data for an existing entity.
                    *
                  + * When calling this function outside an entity save operation be sure to
                  + * clear caches for the entity:
                  + * @code
                  + * entity_get_controller($entity_type)->resetCache(array($entity_id))
                  + * @endcode
                  + *
                    * @param $entity_type
                    *   The type of $entity; e.g. 'node' or 'user'.
                    * @param $entity
                  diff --git a/site/modules/field/field.crud.inc b/site/modules/field/field.crud.inc
                  index 83863d6..7c0e3a1 100644
                  --- a/site/modules/field/field.crud.inc
                  +++ b/site/modules/field/field.crud.inc
                  @@ -60,11 +60,11 @@ function field_create_field($field) {
                     }
                     // Field type is required.
                     if (empty($field['type'])) {
                  -    throw new FieldException('Attempt to create a field with no type.');
                  +    throw new FieldException(format_string('Attempt to create field @field_name with no type.', array('@field_name' => $field['field_name'])));
                     }
                     // Field name cannot contain invalid characters.
                     if (!preg_match('/^[_a-z]+[_a-z0-9]*$/', $field['field_name'])) {
                  -    throw new FieldException('Attempt to create a field with invalid characters. Only lowercase alphanumeric characters and underscores are allowed, and only lowercase letters and underscore are allowed as the first character');
                  +    throw new FieldException(format_string('Attempt to create a field @field_name with invalid characters. Only lowercase alphanumeric characters and underscores are allowed, and only lowercase letters and underscore are allowed as the first character', array('@field_name' => $field['field_name'])));
                     }
                   
                     // Field name cannot be longer than 32 characters. We use drupal_strlen()
                  @@ -189,7 +189,7 @@ function field_create_field($field) {
                     }
                   
                     // Clear caches
                  -  field_cache_clear(TRUE);
                  +  field_cache_clear();
                   
                     // Invoke external hooks after the cache is cleared for API consistency.
                     module_invoke_all('field_create_field', $field);
                  @@ -288,7 +288,7 @@ function field_update_field($field) {
                     drupal_write_record('field_config', $field, $primary_key);
                   
                     // Clear caches
                  -  field_cache_clear(TRUE);
                  +  field_cache_clear();
                   
                     // Invoke external hooks after the cache is cleared for API consistency.
                     module_invoke_all('field_update_field', $field, $prior_field, $has_data);
                  @@ -430,7 +430,7 @@ function field_delete_field($field_name) {
                       ->execute();
                   
                     // Clear the cache.
                  -  field_cache_clear(TRUE);
                  +  field_cache_clear();
                   
                     module_invoke_all('field_delete_field', $field);
                   }
                  @@ -540,9 +540,9 @@ function field_create_instance($instance) {
                    *   // Fetch an instance info array.
                    *   $instance_info = field_info_instance($entity_type, $field_name, $bundle_name);
                    *   // Change a single property in the instance definition.
                  - *   $instance_info['definition']['required'] = TRUE;
                  + *   $instance_info['required'] = TRUE;
                    *   // Write the changed definition back.
                  - *   field_update_instance($instance_info['definition']);
                  + *   field_update_instance($instance_info);
                    *   @endcode
                    *
                    * @throws FieldException
                  diff --git a/site/modules/field/field.info b/site/modules/field/field.info
                  index fc9c319..93d560a 100644
                  --- a/site/modules/field/field.info
                  +++ b/site/modules/field/field.info
                  @@ -11,8 +11,7 @@ dependencies[] = field_sql_storage
                   required = TRUE
                   stylesheets[all][] = theme/field.css
                   
                  -; Information added by drupal.org packaging script on 2013-08-08
                  -version = "7.23"
                  +; Information added by Drupal.org packaging script on 2018-04-25
                  +version = "7.59"
                   project = "drupal"
                  -datestamp = "1375928238"
                  -
                  +datestamp = "1524673284"
                  diff --git a/site/modules/field/field.info.class.inc b/site/modules/field/field.info.class.inc
                  index 3b89898..772cd45 100644
                  --- a/site/modules/field/field.info.class.inc
                  +++ b/site/modules/field/field.info.class.inc
                  @@ -146,7 +146,10 @@ class FieldInfo {
                   
                       // Save in "static" and persistent caches.
                       $this->fieldMap = $map;
                  -    cache_set('field_info:field_map', $map, 'cache_field');
                  +    if (lock_acquire('field_info:field_map')) {
                  +      cache_set('field_info:field_map', $map, 'cache_field');
                  +      lock_release('field_info:field_map');
                  +    }
                   
                       return $map;
                     }
                  @@ -174,7 +177,10 @@ class FieldInfo {
                         }
                   
                         // Store in persistent cache.
                  -      cache_set('field_info:fields', $this->fieldsById, 'cache_field');
                  +      if (lock_acquire('field_info:fields')) {
                  +        cache_set('field_info:fields', $this->fieldsById, 'cache_field');
                  +        lock_release('field_info:fields');
                  +      }
                       }
                   
                       // Fill the name/ID map.
                  @@ -231,7 +237,10 @@ class FieldInfo {
                           }
                   
                           // Store in persistent cache.
                  -        cache_set('field_info:instances', $this->bundleInstances, 'cache_field');
                  +        if (lock_acquire('field_info:instances')) {
                  +          cache_set('field_info:instances', $this->bundleInstances, 'cache_field');
                  +          lock_release('field_info:instances');
                  +        }
                         }
                   
                         $this->loadedAllInstances = TRUE;
                  @@ -419,7 +428,11 @@ class FieldInfo {
                       foreach ($instances as $instance) {
                         $cache['fields'][] = $this->fieldsById[$instance['field_id']];
                       }
                  -    cache_set("field_info:bundle:$entity_type:$bundle", $cache, 'cache_field');
                  +
                  +    if (lock_acquire("field_info:bundle:$entity_type:$bundle")) {
                  +      cache_set("field_info:bundle:$entity_type:$bundle", $cache, 'cache_field');
                  +      lock_release("field_info:bundle:$entity_type:$bundle");
                  +    }
                   
                       return $instances;
                     }
                  @@ -460,7 +473,10 @@ class FieldInfo {
                   
                       // Store in the 'static' and persistent caches.
                       $this->bundleExtraFields[$entity_type][$bundle] = $info;
                  -    cache_set("field_info:bundle_extra:$entity_type:$bundle", $info, 'cache_field');
                  +    if (lock_acquire("field_info:bundle_extra:$entity_type:$bundle")) {
                  +      cache_set("field_info:bundle_extra:$entity_type:$bundle", $info, 'cache_field');
                  +      lock_release("field_info:bundle_extra:$entity_type:$bundle");
                  +    }
                   
                       return $this->bundleExtraFields[$entity_type][$bundle];
                     }
                  @@ -596,10 +612,12 @@ class FieldInfo {
                       // Fill in default values.
                       $display += array(
                         'label' => 'above',
                  -      'type' => $field_type_info['default_formatter'],
                         'settings' => array(),
                         'weight' => 0,
                       );
                  +    if (empty($display['type'])) {
                  +      $display['type'] = $field_type_info['default_formatter'];
                  +    }
                       if ($display['type'] != 'hidden') {
                         $formatter_type_info = field_info_formatter_types($display['type']);
                         // Fall back to default formatter if formatter type is not available.
                  diff --git a/site/modules/field/field.info.inc b/site/modules/field/field.info.inc
                  index 02b3c9c..dea2fd4 100644
                  --- a/site/modules/field/field.info.inc
                  +++ b/site/modules/field/field.info.inc
                  @@ -223,7 +223,11 @@ function _field_info_collate_types($reset = FALSE) {
                         }
                         drupal_alter('field_storage_info', $info['storage types']);
                   
                  -      cache_set("field_info_types:$langcode", $info, 'cache_field');
                  +      // Set the cache if we can acquire a lock.
                  +      if (lock_acquire("field_info_types:$langcode")) {
                  +        cache_set("field_info_types:$langcode", $info, 'cache_field');
                  +        lock_release("field_info_types:$langcode");
                  +      }
                       }
                     }
                   
                  diff --git a/site/modules/field/field.install b/site/modules/field/field.install
                  index c5c5005..c5dd2dc 100644
                  --- a/site/modules/field/field.install
                  +++ b/site/modules/field/field.install
                  @@ -162,6 +162,7 @@ function field_schema() {
                       ),
                     );
                     $schema['cache_field'] = drupal_get_schema_unprocessed('system', 'cache');
                  +  $schema['cache_field']['description'] = 'Cache table for the Field module to store already built field information.';
                   
                     return $schema;
                   }
                  @@ -466,6 +467,27 @@ function field_update_7003() {
                     // Empty update to force a rebuild of the registry.
                   }
                   
                  +/**
                  + * Grant the new "administer fields" permission to trusted users.
                  + */
                  +function field_update_7004() {
                  +  // Assign the permission to anyone that already has a trusted core permission
                  +  // that would have previously let them administer fields on an entity type.
                  +  $rids = array();
                  +  $permissions = array(
                  +    'administer site configuration',
                  +    'administer content types',
                  +    'administer users',
                  +  );
                  +  foreach ($permissions as $permission) {
                  +    $rids = array_merge($rids, array_keys(user_roles(FALSE, $permission)));
                  +  }
                  +  $rids = array_unique($rids);
                  +  foreach ($rids as $rid) {
                  +    _update_7000_user_role_grant_permissions($rid, array('administer fields'), 'field');
                  +  }
                  +}
                  +
                   /**
                    * @} End of "addtogroup updates-7.x-extra".
                    */
                  diff --git a/site/modules/field/field.module b/site/modules/field/field.module
                  index 4331cdf..8d66813 100644
                  --- a/site/modules/field/field.module
                  +++ b/site/modules/field/field.module
                  @@ -316,6 +316,21 @@ function field_help($path, $arg) {
                     }
                   }
                   
                  +/**
                  + * Implements hook_permission().
                  + */
                  +function field_permission() {
                  +  return array(
                  +    'administer fields' => array(
                  +      'title' => t('Administer fields'),
                  +      'description' => t('Additional permissions are required based on what the fields are attached to (for example, administer content types to manage fields attached to content).', array(
                  +        '@url' => '#module-node',
                  +      )),
                  +      'restrict access' => TRUE,
                  +    ),
                  +  );
                  +}
                  +
                   /**
                    * Implements hook_theme().
                    */
                  @@ -342,17 +357,6 @@ function field_cron() {
                     field_purge_batch($limit);
                   }
                   
                  -/**
                  - * Implements hook_modules_uninstalled().
                  - */
                  -function field_modules_uninstalled($modules) {
                  -  module_load_include('inc', 'field', 'field.crud');
                  -  foreach ($modules as $module) {
                  -    // TODO D7: field_module_delete is not yet implemented
                  -    // field_module_delete($module);
                  -  }
                  -}
                  -
                   /**
                    * Implements hook_system_info_alter().
                    *
                  @@ -819,9 +823,9 @@ function field_view_value($entity_type, $entity, $field_name, $item, $display =
                    *
                    * This function can be used by third-party modules that need to output an
                    * isolated field.
                  - * - Do not use inside node (or other entities) templates, use
                  + * - Do not use inside node (or any other entity) templates; use
                    *   render($content[FIELD_NAME]) instead.
                  - * - Do not use to display all fields in an entity, use
                  + * - Do not use to display all fields in an entity; use
                    *   field_attach_prepare_view() and field_attach_view() instead.
                    * - The field_view_value() function can be used to output a single formatted
                    *   field value, without label or wrapping field markup.
                  @@ -905,6 +909,7 @@ function field_view_field($entity_type, $entity, $field_name, $display = array()
                         'entity' => $entity,
                         'view_mode' => '_custom',
                         'display' => $display,
                  +      'language' => $langcode,
                       );
                       drupal_alter('field_attach_view', $result, $context);
                   
                  @@ -947,20 +952,30 @@ function field_get_items($entity_type, $entity, $field_name, $langcode = NULL) {
                    */
                   function field_has_data($field) {
                     $query = new EntityFieldQuery();
                  -  return (bool) $query
                  -    ->fieldCondition($field)
                  +  $query = $query->fieldCondition($field)
                       ->range(0, 1)
                       ->count()
                       // Neutralize the 'entity_field_access' query tag added by
                       // field_sql_storage_field_storage_query(). The result cannot depend on the
                       // access grants of the current user.
                  -    ->addTag('DANGEROUS_ACCESS_CHECK_OPT_OUT')
                  +    ->addTag('DANGEROUS_ACCESS_CHECK_OPT_OUT');
                  +
                  +  return (bool) $query
                  +    ->execute() || (bool) $query
                  +    ->age(FIELD_LOAD_REVISION)
                       ->execute();
                   }
                   
                   /**
                    * Determine whether the user has access to a given field.
                    *
                  + * This function does not determine whether access is granted to the entity
                  + * itself, only the specific field. Callers are responsible for ensuring that
                  + * entity access is also respected. For example, when checking field access for
                  + * nodes, check node_access() before checking field_access(), and when checking
                  + * field access for entities using the Entity API contributed module,
                  + * check entity_access() before checking field_access().
                  + *
                    * @param $op
                    *   The operation to be performed. Possible values:
                    *   - 'edit'
                  diff --git a/site/modules/field/modules/field_sql_storage/field_sql_storage.info b/site/modules/field/modules/field_sql_storage/field_sql_storage.info
                  index 3f73a1b..d7e27be 100644
                  --- a/site/modules/field/modules/field_sql_storage/field_sql_storage.info
                  +++ b/site/modules/field/modules/field_sql_storage/field_sql_storage.info
                  @@ -7,8 +7,7 @@ dependencies[] = field
                   files[] = field_sql_storage.test
                   required = TRUE
                   
                  -; Information added by drupal.org packaging script on 2013-08-08
                  -version = "7.23"
                  +; Information added by Drupal.org packaging script on 2018-04-25
                  +version = "7.59"
                   project = "drupal"
                  -datestamp = "1375928238"
                  -
                  +datestamp = "1524673284"
                  diff --git a/site/modules/field/modules/field_sql_storage/field_sql_storage.module b/site/modules/field/modules/field_sql_storage/field_sql_storage.module
                  index 93f2077..842893a 100644
                  --- a/site/modules/field/modules/field_sql_storage/field_sql_storage.module
                  +++ b/site/modules/field/modules/field_sql_storage/field_sql_storage.module
                  @@ -64,6 +64,49 @@ function _field_sql_storage_revision_tablename($field) {
                     }
                   }
                   
                  +/**
                  + * Generates a table alias for a field data table.
                  + *
                  + * The table alias is unique for each unique combination of field name
                  + * (represented by $tablename), delta_group and language_group.
                  + *
                  + * @param $tablename
                  + *   The name of the data table for this field.
                  + * @param $field_key
                  + *   The numeric key of this field in this query.
                  + * @param $query
                  + *   The EntityFieldQuery that is executed.
                  + *
                  + * @return
                  + *   A string containing the generated table alias.
                  + */
                  +function _field_sql_storage_tablealias($tablename, $field_key, EntityFieldQuery $query) {
                  +  // No conditions present: use a unique alias.
                  +  if (empty($query->fieldConditions[$field_key])) {
                  +    return $tablename . $field_key;
                  +  }
                  +
                  +  // Find the delta and language condition values and append them to the alias.
                  +  $condition = $query->fieldConditions[$field_key];
                  +  $alias = $tablename;
                  +  $has_group_conditions = FALSE;
                  +
                  +  foreach (array('delta', 'language') as $column) {
                  +    if (isset($condition[$column . '_group'])) {
                  +      $alias .= '_' . $column . '_' . $condition[$column . '_group'];
                  +      $has_group_conditions = TRUE;
                  +    }
                  +  }
                  +
                  +  // Return the alias when it has delta/language group conditions.
                  +  if ($has_group_conditions) {
                  +    return $alias;
                  +  }
                  +
                  +  // Return a unique alias in other cases.
                  +  return $tablename . $field_key;
                  +}
                  +
                   /**
                    * Generate a column name for a field data table.
                    *
                  @@ -180,7 +223,17 @@ function _field_sql_storage_schema($field) {
                     foreach ($field['indexes'] as $index_name => $columns) {
                       $real_name = _field_sql_storage_indexname($field['field_name'], $index_name);
                       foreach ($columns as $column_name) {
                  -      $current['indexes'][$real_name][] = _field_sql_storage_columnname($field['field_name'], $column_name);
                  +      // Indexes can be specified as either a column name or an array with
                  +      // column name and length. Allow for either case.
                  +      if (is_array($column_name)) {
                  +        $current['indexes'][$real_name][] = array(
                  +          _field_sql_storage_columnname($field['field_name'], $column_name[0]),
                  +          $column_name[1],
                  +        );
                  +      }
                  +      else {
                  +        $current['indexes'][$real_name][] = _field_sql_storage_columnname($field['field_name'], $column_name);
                  +      }
                       }
                     }
                   
                  @@ -289,7 +342,17 @@ function field_sql_storage_field_storage_update_field($field, $prior_field, $has
                           $real_name = _field_sql_storage_indexname($field['field_name'], $name);
                           $real_columns = array();
                           foreach ($columns as $column_name) {
                  -          $real_columns[] = _field_sql_storage_columnname($field['field_name'], $column_name);
                  +          // Indexes can be specified as either a column name or an array with
                  +          // column name and length. Allow for either case.
                  +          if (is_array($column_name)) {
                  +            $real_columns[] = array(
                  +              _field_sql_storage_columnname($field['field_name'], $column_name[0]),
                  +              $column_name[1],
                  +            );
                  +          }
                  +          else {
                  +            $real_columns[] = _field_sql_storage_columnname($field['field_name'], $column_name);
                  +          }
                           }
                           db_add_index($table, $real_name, $real_columns);
                           db_add_index($revision_table, $real_name, $real_columns);
                  @@ -422,7 +485,7 @@ function field_sql_storage_field_storage_write($entity_type, $entity, $op, $fiel
                         $items = (array) $entity->{$field_name}[$langcode];
                         $delta_count = 0;
                         foreach ($items as $delta => $item) {
                  -        // We now know we have someting to insert.
                  +        // We now know we have something to insert.
                           $do_insert = TRUE;
                           $record = array(
                             'entity_type' => $entity_type,
                  @@ -504,17 +567,21 @@ function field_sql_storage_field_storage_query(EntityFieldQuery $query) {
                       $id_key = 'revision_id';
                     }
                     $table_aliases = array();
                  +  $query_tables = NULL;
                     // Add tables for the fields used.
                     foreach ($query->fields as $key => $field) {
                       $tablename = $tablename_function($field);
                  -    // Every field needs a new table.
                  -    $table_alias = $tablename . $key;
                  +    $table_alias = _field_sql_storage_tablealias($tablename, $key, $query);
                       $table_aliases[$key] = $table_alias;
                       if ($key) {
                  -      $select_query->join($tablename, $table_alias, "$table_alias.entity_type = $field_base_table.entity_type AND $table_alias.$id_key = $field_base_table.$id_key");
                  +      if (!isset($query_tables[$table_alias])) {
                  +        $select_query->join($tablename, $table_alias, "$table_alias.entity_type = $field_base_table.entity_type AND $table_alias.$id_key = $field_base_table.$id_key");
                  +      }
                       }
                       else {
                         $select_query = db_select($tablename, $table_alias);
                  +      // Store a reference to the list of joined tables.
                  +      $query_tables =& $select_query->getTables();
                         // Allow queries internal to the Field API to opt out of the access
                         // check, for situations where the query's results should not depend on
                         // the access grants for the current user.
                  diff --git a/site/modules/field/modules/field_sql_storage/field_sql_storage.test b/site/modules/field/modules/field_sql_storage/field_sql_storage.test
                  index 12c54ba..7c88ac7 100644
                  --- a/site/modules/field/modules/field_sql_storage/field_sql_storage.test
                  +++ b/site/modules/field/modules/field_sql_storage/field_sql_storage.test
                  @@ -355,14 +355,14 @@ class FieldSqlStorageTestCase extends DrupalWebTestCase {
                       field_attach_insert('test_entity', $entity);
                   
                       // Add an index
                  -    $field = array('field_name' => $field_name, 'indexes' => array('value' => array('value')));
                  +    $field = array('field_name' => $field_name, 'indexes' => array('value' => array(array('value', 255))));
                       field_update_field($field);
                       foreach ($tables as $table) {
                         $this->assertTrue(Database::getConnection()->schema()->indexExists($table, "{$field_name}_value"), format_string("Index on value created in %table", array('%table' => $table)));
                       }
                   
                       // Add a different index, removing the existing custom one.
                  -    $field = array('field_name' => $field_name, 'indexes' => array('value_format' => array('value', 'format')));
                  +    $field = array('field_name' => $field_name, 'indexes' => array('value_format' => array(array('value', 127), array('format', 127))));
                       field_update_field($field);
                       foreach ($tables as $table) {
                         $this->assertTrue(Database::getConnection()->schema()->indexExists($table, "{$field_name}_value_format"), format_string("Index on value_format created in %table", array('%table' => $table)));
                  @@ -438,4 +438,149 @@ class FieldSqlStorageTestCase extends DrupalWebTestCase {
                       $this->assertEqual($foreign_key['table'], $foreign_key_name, 'Foreign key table name preserved in the schema');
                       $this->assertEqual($foreign_key['columns'][$foreign_key_column], 'id', 'Foreign key column name preserved in the schema');
                     }
                  +
                  +  /**
                  +   * Test handling multiple conditions on one column of a field.
                  +   *
                  +   * Tests both the result and the complexity of the query.
                  +   */
                  +  function testFieldSqlStorageMultipleConditionsSameColumn() {
                  +    $entity = field_test_create_stub_entity(NULL, NULL);
                  +    $entity->{$this->field_name}[LANGUAGE_NONE][0] = array('value' => 1);
                  +    field_test_entity_save($entity);
                  +
                  +    $entity = field_test_create_stub_entity(NULL, NULL);
                  +    $entity->{$this->field_name}[LANGUAGE_NONE][0] = array('value' => 2);
                  +    field_test_entity_save($entity);
                  +
                  +    $entity = field_test_create_stub_entity(NULL, NULL);
                  +    $entity->{$this->field_name}[LANGUAGE_NONE][0] = array('value' => 3);
                  +    field_test_entity_save($entity);
                  +
                  +    $query = new EntityFieldQuery();
                  +    // This tag causes field_test_query_store_global_test_query_alter() to be
                  +    // invoked so that the query can be tested.
                  +    $query->addTag('store_global_test_query');
                  +    $query->entityCondition('entity_type', 'test_entity');
                  +    $query->entityCondition('bundle', 'test_bundle');
                  +    $query->fieldCondition($this->field_name, 'value', 1, '<>', 0, LANGUAGE_NONE);
                  +    $query->fieldCondition($this->field_name, 'value', 2, '<>', 0, LANGUAGE_NONE);
                  +    $result = field_sql_storage_field_storage_query($query);
                  +
                  +    // Test the results.
                  +    $this->assertEqual(1, count($result), format_string('One result should be returned, got @count', array('@count' => count($result))));
                  +
                  +    // Test the complexity of the query.
                  +    $query = $GLOBALS['test_query'];
                  +    $this->assertNotNull($query, 'Precondition: the query should be available');
                  +    $tables = $query->getTables();
                  +    $this->assertEqual(1, count($tables), 'The query contains just one table.');
                  +
                  +    // Clean up.
                  +    unset($GLOBALS['test_query']);
                  +  }
                  +
                  +  /**
                  +   * Test handling multiple conditions on multiple columns of one field.
                  +   *
                  +   * Tests both the result and the complexity of the query.
                  +   */
                  +  function testFieldSqlStorageMultipleConditionsDifferentColumns() {
                  +    // Create the multi-column shape field
                  +    $field_name = strtolower($this->randomName());
                  +    $field = array('field_name' => $field_name, 'type' => 'shape', 'cardinality' => 4);
                  +    $field = field_create_field($field);
                  +    $instance = array(
                  +      'field_name' => $field_name,
                  +      'entity_type' => 'test_entity',
                  +      'bundle' => 'test_bundle'
                  +    );
                  +    $instance = field_create_instance($instance);
                  +
                  +    $entity = field_test_create_stub_entity(NULL, NULL);
                  +    $entity->{$field_name}[LANGUAGE_NONE][0] = array('shape' => 'A', 'color' => 'X');
                  +    field_test_entity_save($entity);
                  +
                  +    $entity = field_test_create_stub_entity(NULL, NULL);
                  +    $entity->{$field_name}[LANGUAGE_NONE][0] = array('shape' => 'B', 'color' => 'X');
                  +    field_test_entity_save($entity);
                  +
                  +    $entity = field_test_create_stub_entity(NULL, NULL);
                  +    $entity->{$field_name}[LANGUAGE_NONE][0] = array('shape' => 'A', 'color' => 'Y');
                  +    field_test_entity_save($entity);
                  +
                  +    $query = new EntityFieldQuery();
                  +    // This tag causes field_test_query_store_global_test_query_alter() to be
                  +    // invoked so that the query can be tested.
                  +    $query->addTag('store_global_test_query');
                  +    $query->entityCondition('entity_type', 'test_entity');
                  +    $query->entityCondition('bundle', 'test_bundle');
                  +    $query->fieldCondition($field_name, 'shape', 'B', '=', 'something', LANGUAGE_NONE);
                  +    $query->fieldCondition($field_name, 'color', 'X', '=', 'something', LANGUAGE_NONE);
                  +    $result = field_sql_storage_field_storage_query($query);
                  +
                  +    // Test the results.
                  +    $this->assertEqual(1, count($result), format_string('One result should be returned, got @count', array('@count' => count($result))));
                  +
                  +    // Test the complexity of the query.
                  +    $query = $GLOBALS['test_query'];
                  +    $this->assertNotNull($query, 'Precondition: the query should be available');
                  +    $tables = $query->getTables();
                  +    $this->assertEqual(1, count($tables), 'The query contains just one table.');
                  +
                  +    // Clean up.
                  +    unset($GLOBALS['test_query']);
                  +  }
                  +
                  +  /**
                  +   * Test handling multiple conditions on multiple columns of one field for multiple languages.
                  +   *
                  +   * Tests both the result and the complexity of the query.
                  +   */
                  +  function testFieldSqlStorageMultipleConditionsDifferentColumnsMultipleLanguages() {
                  +    field_test_entity_info_translatable('test_entity', TRUE);
                  +
                  +    // Create the multi-column shape field
                  +    $field_name = strtolower($this->randomName());
                  +    $field = array('field_name' => $field_name, 'type' => 'shape', 'cardinality' => 4, 'translatable' => TRUE);
                  +    $field = field_create_field($field);
                  +    $instance = array(
                  +      'field_name' => $field_name,
                  +      'entity_type' => 'test_entity',
                  +      'bundle' => 'test_bundle',
                  +      'settings' => array(
                  +        // Prevent warning from field_test_field_load().
                  +        'test_hook_field_load' => FALSE,
                  +      ),
                  +    );
                  +    $instance = field_create_instance($instance);
                  +
                  +    $entity = field_test_create_stub_entity(NULL, NULL);
                  +    $entity->{$field_name}[LANGUAGE_NONE][0] = array('shape' => 'A', 'color' => 'X');
                  +    $entity->{$field_name}['en'][0] = array('shape' => 'B', 'color' => 'Y');
                  +    field_test_entity_save($entity);
                  +    $entity = field_test_entity_test_load($entity->ftid);
                  +
                  +    $query = new EntityFieldQuery();
                  +    // This tag causes field_test_query_store_global_test_query_alter() to be
                  +    // invoked so that the query can be tested.
                  +    $query->addTag('store_global_test_query');
                  +    $query->entityCondition('entity_type', 'test_entity');
                  +    $query->entityCondition('bundle', 'test_bundle');
                  +    $query->fieldCondition($field_name, 'color', 'X', '=', NULL, LANGUAGE_NONE);
                  +    $query->fieldCondition($field_name, 'shape', 'B', '=', NULL, 'en');
                  +    $result = field_sql_storage_field_storage_query($query);
                  +
                  +    // Test the results.
                  +    $this->assertEqual(1, count($result), format_string('One result should be returned, got @count', array('@count' => count($result))));
                  +
                  +    // Test the complexity of the query.
                  +    $query = $GLOBALS['test_query'];
                  +    $this->assertNotNull($query, 'Precondition: the query should be available');
                  +    $tables = $query->getTables();
                  +    $this->assertEqual(2, count($tables), 'The query contains two tables.');
                  +
                  +    // Clean up.
                  +    unset($GLOBALS['test_query']);
                  +  }
                   }
                  diff --git a/site/modules/field/modules/list/list.info b/site/modules/field/modules/list/list.info
                  index 24dfc98..1f2b787 100644
                  --- a/site/modules/field/modules/list/list.info
                  +++ b/site/modules/field/modules/list/list.info
                  @@ -7,8 +7,7 @@ dependencies[] = field
                   dependencies[] = options
                   files[] = tests/list.test
                   
                  -; Information added by drupal.org packaging script on 2013-08-08
                  -version = "7.23"
                  +; Information added by Drupal.org packaging script on 2018-04-25
                  +version = "7.59"
                   project = "drupal"
                  -datestamp = "1375928238"
                  -
                  +datestamp = "1524673284"
                  diff --git a/site/modules/field/modules/list/tests/list.test b/site/modules/field/modules/list/tests/list.test
                  index 84de7e8..b476b5a 100644
                  --- a/site/modules/field/modules/list/tests/list.test
                  +++ b/site/modules/field/modules/list/tests/list.test
                  @@ -212,7 +212,7 @@ class ListFieldUITestCase extends FieldTestCase {
                       parent::setUp('field_test', 'field_ui');
                   
                       // Create test user.
                  -    $admin_user = $this->drupalCreateUser(array('access content', 'administer content types', 'administer taxonomy'));
                  +    $admin_user = $this->drupalCreateUser(array('access content', 'administer content types', 'administer taxonomy', 'administer fields'));
                       $this->drupalLogin($admin_user);
                   
                       // Create content type, with underscores.
                  diff --git a/site/modules/field/modules/list/tests/list_test.info b/site/modules/field/modules/list/tests/list_test.info
                  index ff08ef9..561bd87 100644
                  --- a/site/modules/field/modules/list/tests/list_test.info
                  +++ b/site/modules/field/modules/list/tests/list_test.info
                  @@ -5,8 +5,7 @@ package = Testing
                   version = VERSION
                   hidden = TRUE
                   
                  -; Information added by drupal.org packaging script on 2013-08-08
                  -version = "7.23"
                  +; Information added by Drupal.org packaging script on 2018-04-25
                  +version = "7.59"
                   project = "drupal"
                  -datestamp = "1375928238"
                  -
                  +datestamp = "1524673284"
                  diff --git a/site/modules/field/modules/number/number.info b/site/modules/field/modules/number/number.info
                  index 69fd1ac..6bd079c 100644
                  --- a/site/modules/field/modules/number/number.info
                  +++ b/site/modules/field/modules/number/number.info
                  @@ -6,8 +6,7 @@ core = 7.x
                   dependencies[] = field
                   files[] = number.test
                   
                  -; Information added by drupal.org packaging script on 2013-08-08
                  -version = "7.23"
                  +; Information added by Drupal.org packaging script on 2018-04-25
                  +version = "7.59"
                   project = "drupal"
                  -datestamp = "1375928238"
                  -
                  +datestamp = "1524673284"
                  diff --git a/site/modules/field/modules/number/number.module b/site/modules/field/modules/number/number.module
                  index 6046544..2538bdd 100644
                  --- a/site/modules/field/modules/number/number.module
                  +++ b/site/modules/field/modules/number/number.module
                  @@ -164,6 +164,15 @@ function number_field_presave($entity_type, $entity, $field, $instance, $langcod
                         }
                       }
                     }
                  +  if ($field['type'] == 'number_float') {
                  +    // Remove the decimal point from float values with decimal
                  +    // point but no decimal numbers.
                  +    foreach ($items as $delta => $item) {
                  +      if (isset($item['value'])) {
                  +        $items[$delta]['value'] = floatval($item['value']);
                  +      }
                  +    }
                  +  }
                   }
                   
                   /**
                  @@ -188,7 +197,7 @@ function number_field_formatter_info() {
                         'label' => t('Default'),
                         'field types' => array('number_integer'),
                         'settings' =>  array(
                  -        'thousand_separator' => ' ',
                  +        'thousand_separator' => '',
                           // The 'decimal_separator' and 'scale' settings are not configurable
                           // through the UI, and will therefore keep their default values. They
                           // are only present so that the 'number_integer' and 'number_decimal'
                  @@ -202,7 +211,7 @@ function number_field_formatter_info() {
                         'label' => t('Default'),
                         'field types' => array('number_decimal', 'number_float'),
                         'settings' =>  array(
                  -        'thousand_separator' => ' ',
                  +        'thousand_separator' => '',
                           'decimal_separator' => '.',
                           'scale' => 2,
                           'prefix_suffix' => TRUE,
                  @@ -222,6 +231,8 @@ function number_field_formatter_settings_form($field, $instance, $view_mode, $fo
                     $display = $instance['display'][$view_mode];
                     $settings = $display['settings'];
                   
                  +  $element = array();
                  +
                     if ($display['type'] == 'number_decimal' || $display['type'] == 'number_integer') {
                       $options = array(
                         ''  => t(''),
                  diff --git a/site/modules/field/modules/number/number.test b/site/modules/field/modules/number/number.test
                  index 88029cd..839da36 100644
                  --- a/site/modules/field/modules/number/number.test
                  +++ b/site/modules/field/modules/number/number.test
                  @@ -23,7 +23,7 @@ class NumberFieldTestCase extends DrupalWebTestCase {
                   
                     function setUp() {
                       parent::setUp('field_test');
                  -    $this->web_user = $this->drupalCreateUser(array('access field_test content', 'administer field_test content', 'administer content types'));
                  +    $this->web_user = $this->drupalCreateUser(array('access field_test content', 'administer field_test content', 'administer content types', 'administer fields'));
                       $this->drupalLogin($this->web_user);
                     }
                   
                  @@ -152,4 +152,50 @@ class NumberFieldTestCase extends DrupalWebTestCase {
                       );
                       $this->drupalPost(NULL, $edit, t('Save'));
                     }
                  +
                  +  /**
                  +   * Test number_float field.
                  +   */
                  +  function testNumberFloatField() {
                  +    $this->field = array(
                  +      'field_name' => drupal_strtolower($this->randomName()),
                  +      'type' => 'number_float',
                  +      'settings' => array(
                  +        'precision' => 8, 'scale' => 4, 'decimal_separator' => '.',
                  +      )
                  +    );
                  +    field_create_field($this->field);
                  +    $this->instance = array(
                  +      'field_name' => $this->field['field_name'],
                  +      'entity_type' => 'test_entity',
                  +      'bundle' => 'test_bundle',
                  +      'widget' => array(
                  +        'type' => 'number',
                  +      ),
                  +      'display' => array(
                  +        'default' => array(
                  +          'type' => 'number_float',
                  +        ),
                  +      ),
                  +    );
                  +    field_create_instance($this->instance);
                  +
                  +    $langcode = LANGUAGE_NONE;
                  +    $value = array(
                  +      '9.' => '9',
                  +      '.' => '0',
                  +      '123.55' => '123.55',
                  +      '.55' => '0.55',
                  +      '-0.55' => '-0.55',
                  +    );
                  +    foreach($value as $key => $value) {
                  +      $edit = array(
                  +        "{$this->field['field_name']}[$langcode][0][value]" => $key,
                  +      );
                  +      $this->drupalPost('test-entity/add/test-bundle', $edit, t('Save'));
                  +      $this->assertNoText("PDOException");
                  +      $this->assertRaw($value, 'Correct value is displayed.');
                  +    }
                  +  }
                  +
                   }
                  diff --git a/site/modules/field/modules/options/options.info b/site/modules/field/modules/options/options.info
                  index 5afe004..add868e 100644
                  --- a/site/modules/field/modules/options/options.info
                  +++ b/site/modules/field/modules/options/options.info
                  @@ -6,8 +6,7 @@ core = 7.x
                   dependencies[] = field
                   files[] = options.test
                   
                  -; Information added by drupal.org packaging script on 2013-08-08
                  -version = "7.23"
                  +; Information added by Drupal.org packaging script on 2018-04-25
                  +version = "7.59"
                   project = "drupal"
                  -datestamp = "1375928238"
                  -
                  +datestamp = "1524673284"
                  diff --git a/site/modules/field/modules/options/options.module b/site/modules/field/modules/options/options.module
                  index 3862ba7..041b84a 100644
                  --- a/site/modules/field/modules/options/options.module
                  +++ b/site/modules/field/modules/options/options.module
                  @@ -185,6 +185,7 @@ function _options_properties($type, $multiple, $required, $has_value) {
                     $base = array(
                       'filter_xss' => FALSE,
                       'strip_tags' => FALSE,
                  +    'strip_tags_and_unescape' => FALSE,
                       'empty_option' => FALSE,
                       'optgroups' => FALSE,
                     );
                  @@ -195,7 +196,7 @@ function _options_properties($type, $multiple, $required, $has_value) {
                       case 'select':
                         $properties = array(
                           // Select boxes do not support any HTML tag.
                  -        'strip_tags' => TRUE,
                  +        'strip_tags_and_unescape' => TRUE,
                           'optgroups' => TRUE,
                         );
                         if ($multiple) {
                  @@ -271,9 +272,16 @@ function _options_prepare_options(&$options, $properties) {
                         _options_prepare_options($options[$value], $properties);
                       }
                       else {
                  +      // The 'strip_tags' option is deprecated. Use 'strip_tags_and_unescape'
                  +      // when plain text is required (and where the output will be run through
                  +      // check_plain() before being inserted back into HTML) or 'filter_xss'
                  +      // when HTML is required.
                         if ($properties['strip_tags']) {
                           $options[$value] = strip_tags($label);
                         }
                  +      if ($properties['strip_tags_and_unescape']) {
                  +        $options[$value] = decode_entities(strip_tags($label));
                  +      }
                         if ($properties['filter_xss']) {
                           $options[$value] = field_filter_xss($label);
                         }
                  diff --git a/site/modules/field/modules/options/options.test b/site/modules/field/modules/options/options.test
                  index 44b3caf..321c2a4 100644
                  --- a/site/modules/field/modules/options/options.test
                  +++ b/site/modules/field/modules/options/options.test
                  @@ -23,8 +23,15 @@ class OptionsWidgetsTestCase extends FieldTestCase {
                         'type' => 'list_integer',
                         'cardinality' => 1,
                         'settings' => array(
                  -        // Make sure that 0 works as an option.
                  -        'allowed_values' => array(0 => 'Zero', 1 => 'One', 2 => 'Some  & unescaped markup'),
                  +        'allowed_values' => array(
                  +          // Make sure that 0 works as an option.
                  +          0 => 'Zero',
                  +          1 => 'One',
                  +          // Make sure that option text is properly sanitized.
                  +          2 => 'Some  & unescaped markup',
                  +          // Make sure that HTML entities in option text are not double-encoded.
                  +          3 => 'Some HTML encoded markup with < & >',
                  +        ),
                         ),
                       );
                       $this->card_1 = field_create_field($this->card_1);
                  @@ -35,8 +42,13 @@ class OptionsWidgetsTestCase extends FieldTestCase {
                         'type' => 'list_integer',
                         'cardinality' => 2,
                         'settings' => array(
                  -        // Make sure that 0 works as an option.
                  -        'allowed_values' => array(0 => 'Zero', 1 => 'One', 2 => 'Some  & unescaped markup'),
                  +        'allowed_values' => array(
                  +          // Make sure that 0 works as an option.
                  +          0 => 'Zero',
                  +          1 => 'One',
                  +          // Make sure that option text is properly sanitized.
                  +          2 => 'Some  & unescaped markup',
                  +        ),
                         ),
                       );
                       $this->card_2 = field_create_field($this->card_2);
                  @@ -47,14 +59,18 @@ class OptionsWidgetsTestCase extends FieldTestCase {
                         'type' => 'list_boolean',
                         'cardinality' => 1,
                         'settings' => array(
                  -        // Make sure that 0 works as a 'on' value'.
                  -        'allowed_values' => array(1 => 'Zero', 0 => 'Some  & unescaped markup'),
                  +        'allowed_values' => array(
                  +          // Make sure that 1 works as a 'on' value'.
                  +          1 => 'Zero',
                  +          // Make sure that option text is properly sanitized.
                  +          0 => 'Some  & unescaped markup',
                  +        ),
                         ),
                       );
                       $this->bool = field_create_field($this->bool);
                   
                       // Create a web user.
                  -    $this->web_user = $this->drupalCreateUser(array('access field_test content', 'administer field_test content'));
                  +    $this->web_user = $this->drupalCreateUser(array('access field_test content', 'administer field_test content', 'administer fields'));
                       $this->drupalLogin($this->web_user);
                     }
                   
                  @@ -233,6 +249,7 @@ class OptionsWidgetsTestCase extends FieldTestCase {
                       $this->assertNoOptionSelected("edit-card-1-$langcode", 1);
                       $this->assertNoOptionSelected("edit-card-1-$langcode", 2);
                       $this->assertRaw('Some dangerous & unescaped markup', 'Option text was properly filtered.');
                  +    $this->assertRaw('Some HTML encoded markup with < & >', 'HTML entities in option text were properly handled and not double-encoded');
                   
                       // Submit form: select invalid 'none' option.
                       $edit = array("card_1[$langcode]" => '_none');
                  @@ -359,7 +376,7 @@ class OptionsWidgetsTestCase extends FieldTestCase {
                   
                       // Test the 'None' option.
                   
                  -    // Check that the 'none' option has no efect if actual options are selected
                  +    // Check that the 'none' option has no effect if actual options are selected
                       // as well.
                       $edit = array("card_2[$langcode][]" => array('_none' => '_none', 0 => 0));
                       $this->drupalPost('test-entity/manage/' . $entity->ftid . '/edit', $edit, t('Save'));
                  @@ -459,7 +476,7 @@ class OptionsWidgetsTestCase extends FieldTestCase {
                       $this->assertNoFieldChecked("edit-bool-$langcode");
                   
                       // Create admin user.
                  -    $admin_user = $this->drupalCreateUser(array('access content', 'administer content types', 'administer taxonomy'));
                  +    $admin_user = $this->drupalCreateUser(array('access content', 'administer content types', 'administer taxonomy', 'administer fields'));
                       $this->drupalLogin($admin_user);
                   
                       // Create a test field instance.
                  diff --git a/site/modules/field/modules/text/text.info b/site/modules/field/modules/text/text.info
                  index f3a6ae6..22f2eff 100644
                  --- a/site/modules/field/modules/text/text.info
                  +++ b/site/modules/field/modules/text/text.info
                  @@ -7,8 +7,7 @@ dependencies[] = field
                   files[] = text.test
                   required = TRUE
                   
                  -; Information added by drupal.org packaging script on 2013-08-08
                  -version = "7.23"
                  +; Information added by Drupal.org packaging script on 2018-04-25
                  +version = "7.59"
                   project = "drupal"
                  -datestamp = "1375928238"
                  -
                  +datestamp = "1524673284"
                  diff --git a/site/modules/field/modules/text/text.js b/site/modules/field/modules/text/text.js
                  index f3ae894..e8e270a 100644
                  --- a/site/modules/field/modules/text/text.js
                  +++ b/site/modules/field/modules/text/text.js
                  @@ -12,9 +12,9 @@ Drupal.behaviors.textSummary = {
                   
                         $summaries.once('text-summary-wrapper').each(function(index) {
                           var $summary = $(this);
                  -        var $summaryLabel = $summary.find('label');
                  +        var $summaryLabel = $summary.find('label').first();
                           var $full = $widget.find('.text-full').eq(index).closest('.form-item');
                  -        var $fullLabel = $full.find('label');
                  +        var $fullLabel = $full.find('label').first();
                   
                           // Create a placeholder label when the field cardinality is
                           // unlimited or greater than 1.
                  @@ -23,24 +23,28 @@ Drupal.behaviors.textSummary = {
                           }
                   
                           // Setup the edit/hide summary link.
                  -        var $link = $('(' + Drupal.t('Hide summary') + ')').toggle(
                  -          function () {
                  +        var $link = $('(' + Drupal.t('Hide summary') + ')');
                  +        var $a = $link.find('a');
                  +        var toggleClick = true;
                  +        $link.bind('click', function (e) {
                  +          if (toggleClick) {
                               $summary.hide();
                  -            $(this).find('a').html(Drupal.t('Edit summary')).end().appendTo($fullLabel);
                  -            return false;
                  -          },
                  -          function () {
                  +            $a.html(Drupal.t('Edit summary'));
                  +            $link.appendTo($fullLabel);
                  +          }
                  +          else {
                               $summary.show();
                  -            $(this).find('a').html(Drupal.t('Hide summary')).end().appendTo($summaryLabel);
                  -            return false;
                  +            $a.html(Drupal.t('Hide summary'));
                  +            $link.appendTo($summaryLabel);
                             }
                  -        ).appendTo($summaryLabel);
                  +          toggleClick = !toggleClick;
                  +          return false;
                  +        }).appendTo($summaryLabel);
                   
                           // If no summary is set, hide the summary field.
                           if ($(this).find('.text-summary').val() == '') {
                             $link.click();
                           }
                  -        return;
                         });
                       });
                     }
                  diff --git a/site/modules/field/modules/text/text.module b/site/modules/field/modules/text/text.module
                  index d73814f..bf0d29d 100644
                  --- a/site/modules/field/modules/text/text.module
                  +++ b/site/modules/field/modules/text/text.module
                  @@ -223,11 +223,13 @@ function text_field_formatter_settings_form($field, $instance, $view_mode, $form
                   
                     if (strpos($display['type'], '_trimmed') !== FALSE) {
                       $element['trim_length'] = array(
                  -      '#title' => t('Trim length'),
                  +      '#title' => t('Trimmed limit'),
                         '#type' => 'textfield',
                  +      '#field_suffix' => t('characters'),
                         '#size' => 10,
                         '#default_value' => $settings['trim_length'],
                         '#element_validate' => array('element_validate_integer_positive'),
                  +      '#description' => t('If the summary is not set, the trimmed %label field will be shorter than this character limit.', array('%label' => $instance['label'])),
                         '#required' => TRUE,
                       );
                     }
                  @@ -245,7 +247,7 @@ function text_field_formatter_settings_summary($field, $instance, $view_mode) {
                     $summary = '';
                   
                     if (strpos($display['type'], '_trimmed') !== FALSE) {
                  -    $summary = t('Trim length') . ': ' . $settings['trim_length'];
                  +    $summary = t('Trimmed limit: @trim_length characters', array('@trim_length' => $settings['trim_length']));
                     }
                   
                     return $summary;
                  diff --git a/site/modules/field/modules/text/text.test b/site/modules/field/modules/text/text.test
                  index 2f14738..ad803cf 100644
                  --- a/site/modules/field/modules/text/text.test
                  +++ b/site/modules/field/modules/text/text.test
                  @@ -424,6 +424,7 @@ class TextTranslationTestCase extends DrupalWebTestCase {
                         'administer content types',
                         'access administration pages',
                         'bypass node access',
                  +      'administer fields',
                         filter_permission_name($full_html_format),
                       ));
                       $this->translator = $this->drupalCreateUser(array('create article content', 'edit own article content', 'translate content'));
                  diff --git a/site/modules/field/tests/field.test b/site/modules/field/tests/field.test
                  index 1e59315..adf2413 100644
                  --- a/site/modules/field/tests/field.test
                  +++ b/site/modules/field/tests/field.test
                  @@ -484,6 +484,66 @@ class FieldAttachStorageTestCase extends FieldAttachTestCase {
                       $this->assertEqual($entity->{$this->field_name}[$langcode], $values, 'Insert: missing field results in default value saved');
                     }
                   
                  +  /**
                  +   * Test field_has_data().
                  +   */
                  +  function testFieldHasData() {
                  +    $entity_type = 'test_entity';
                  +    $langcode = LANGUAGE_NONE;
                  +
                  +    $field_name = 'field_1';
                  +    $field = array('field_name' => $field_name, 'type' => 'test_field');
                  +    $field = field_create_field($field);
                  +
                  +    $this->assertFalse(field_has_data($field), "No data should be detected.");
                  +
                  +    $instance = array(
                  +      'field_name' => $field_name,
                  +      'entity_type' => 'test_entity',
                  +      'bundle' => 'test_bundle'
                  +    );
                  +    $instance = field_create_instance($instance);
                  +    $table = _field_sql_storage_tablename($field);
                  +    $revision_table = _field_sql_storage_revision_tablename($field);
                  +
                  +    $columns = array('entity_type', 'entity_id', 'revision_id', 'delta', 'language', $field_name . '_value');
                  +
                  +    $eid = 0;
                  +
                  +    // Insert values into the field revision table.
                  +    $query = db_insert($revision_table)->fields($columns);
                  +    $query->values(array($entity_type, $eid, 0, 0, $langcode, 1));
                  +    $query->execute();
                  +
                  +    $this->assertTrue(field_has_data($field), "Revision data only should be detected.");
                  +
                  +    $field_name = 'field_2';
                  +    $field = array('field_name' => $field_name, 'type' => 'test_field');
                  +    $field = field_create_field($field);
                  +
                  +    $this->assertFalse(field_has_data($field), "No data should be detected.");
                  +
                  +    $instance = array(
                  +      'field_name' => $field_name,
                  +      'entity_type' => 'test_entity',
                  +      'bundle' => 'test_bundle'
                  +    );
                  +    $instance = field_create_instance($instance);
                  +    $table = _field_sql_storage_tablename($field);
                  +    $revision_table = _field_sql_storage_revision_tablename($field);
                  +
                  +    $columns = array('entity_type', 'entity_id', 'revision_id', 'delta', 'language', $field_name . '_value');
                  +
                  +    $eid = 1;
                  +
                  +    // Insert values into the field table.
                  +    $query = db_insert($table)->fields($columns);
                  +    $query->values(array($entity_type, $eid, 0, 0, $langcode, 1));
                  +    $query->execute();
                  +
                  +    $this->assertTrue(field_has_data($field), "Values only in field table should be detected.");
                  +  }
                  +
                     /**
                      * Test field_attach_delete().
                      */
                  @@ -2146,11 +2206,12 @@ class FieldDisplayAPITestCase extends FieldTestCase {
                           'alter' => TRUE,
                         ),
                       );
                  -    $output = field_view_field('test_entity', $this->entity, $this->field_name, $display);
                  +    $output = field_view_field('test_entity', $this->entity, $this->field_name, $display, LANGUAGE_NONE);
                       $this->drupalSetContent(drupal_render($output));
                       $setting = $display['settings']['test_formatter_setting_multiple'];
                       $this->assertNoText($this->label, 'Label was not displayed.');
                       $this->assertText('field_test_field_attach_view_alter', 'Alter fired, display passed.');
                  +    $this->assertText('field language is ' . LANGUAGE_NONE, 'Language is placed onto the context.');
                       $array = array();
                       foreach ($this->values as $delta => $value) {
                         $array[] = $delta . ':' . $value['value'];
                  diff --git a/site/modules/field/tests/field_test.info b/site/modules/field/tests/field_test.info
                  index 385a053..f37ab1b 100644
                  --- a/site/modules/field/tests/field_test.info
                  +++ b/site/modules/field/tests/field_test.info
                  @@ -6,8 +6,7 @@ files[] = field_test.entity.inc
                   version = VERSION
                   hidden = TRUE
                   
                  -; Information added by drupal.org packaging script on 2013-08-08
                  -version = "7.23"
                  +; Information added by Drupal.org packaging script on 2018-04-25
                  +version = "7.59"
                   project = "drupal"
                  -datestamp = "1375928238"
                  -
                  +datestamp = "1524673284"
                  diff --git a/site/modules/field/tests/field_test.install b/site/modules/field/tests/field_test.install
                  index a224520..eaf1390 100644
                  --- a/site/modules/field/tests/field_test.install
                  +++ b/site/modules/field/tests/field_test.install
                  @@ -60,7 +60,7 @@ function field_test_schema() {
                       'description' => 'The base table for test entities with a bundle key.',
                       'fields' => array(
                         'ftid' => array(
                  -        'description' => 'The primary indentifier for a test_entity_bundle_key.',
                  +        'description' => 'The primary identifier for a test_entity_bundle_key.',
                           'type' => 'int',
                           'unsigned' => TRUE,
                           'not null' => TRUE,
                  @@ -79,7 +79,7 @@ function field_test_schema() {
                       'description' => 'The base table for test entities with a bundle.',
                       'fields' => array(
                         'ftid' => array(
                  -        'description' => 'The primary indentifier for a test_entity_bundle.',
                  +        'description' => 'The primary identifier for a test_entity_bundle.',
                           'type' => 'int',
                           'unsigned' => TRUE,
                           'not null' => TRUE,
                  diff --git a/site/modules/field/tests/field_test.module b/site/modules/field/tests/field_test.module
                  index dc2023a..7e9bba0 100644
                  --- a/site/modules/field/tests/field_test.module
                  +++ b/site/modules/field/tests/field_test.module
                  @@ -220,6 +220,10 @@ function field_test_field_attach_view_alter(&$output, $context) {
                     if (!empty($context['display']['settings']['alter'])) {
                       $output['test_field'][] = array('#markup' => 'field_test_field_attach_view_alter');
                     }
                  +
                  +  if (isset($output['test_field'])) {
                  +    $output['test_field'][] = array('#markup' => 'field language is ' . $context['language']);
                  +  }
                   }
                   
                   /**
                  @@ -267,3 +271,14 @@ function field_test_query_efq_table_prefixing_test_alter(&$query) {
                     // exception if the EFQ does not properly prefix the base table.
                     $query->join('test_entity','te2','%alias.ftid = test_entity.ftid');
                   }
                  +
                  +/**
                  + * Implements hook_query_TAG_alter() for tag 'store_global_test_query'.
                  + */
                  +function field_test_query_store_global_test_query_alter($query) {
                  +  // Save the query in a global variable so that it can be examined by tests.
                  +  // This can be used by any test which needs to check a query, but see
                  +  // FieldSqlStorageTestCase::testFieldSqlStorageMultipleConditionsSameColumn()
                  +  // for an example.
                  +  $GLOBALS['test_query'] = $query;
                  +}
                  diff --git a/site/modules/field/theme/field.tpl.php b/site/modules/field/theme/field.tpl.php
                  index f0f9d58..460fd2e 100644
                  --- a/site/modules/field/theme/field.tpl.php
                  +++ b/site/modules/field/theme/field.tpl.php
                  @@ -4,8 +4,10 @@
                    * @file field.tpl.php
                    * Default template implementation to display the value of a field.
                    *
                  - * This file is not used and is here as a starting point for customization only.
                  - * @see theme_field()
                  + * This file is not used by Drupal core, which uses theme functions instead for
                  + * performance reasons. The markup is the same, though, so if you want to use
                  + * template files rather than functions to extend field theming, copy this to
                  + * your custom theme. See theme_field() for a discussion of performance.
                    *
                    * Available variables:
                    * - $items: An array of field values. Use render() to output them.
                  @@ -45,7 +47,7 @@
                    */
                   ?>
                   ' placeholder.
                     if ($mode) {
                       $content = $match[1];
                  -    $hash = md5($content);
                  +    $hash = hash('sha256', $content);
                       $comments[$hash] = $content;
                       return "";
                     }
                  diff --git a/site/modules/filter/filter.pages.inc b/site/modules/filter/filter.pages.inc
                  index 50f8117..0f13da8 100644
                  --- a/site/modules/filter/filter.pages.inc
                  +++ b/site/modules/filter/filter.pages.inc
                  @@ -14,10 +14,9 @@
                    * @see filter_menu()
                    * @see theme_filter_tips()
                    */
                  -function filter_tips_long() {
                  -  $format_id = arg(2);
                  -  if ($format_id) {
                  -    $output = theme('filter_tips', array('tips' => _filter_tips($format_id, TRUE), 'long' => TRUE));
                  +function filter_tips_long($format = NULL) {
                  +  if (!empty($format)) {
                  +    $output = theme('filter_tips', array('tips' => _filter_tips($format->format, TRUE), 'long' => TRUE));
                     }
                     else {
                       $output = theme('filter_tips', array('tips' => _filter_tips(-1, TRUE), 'long' => TRUE));
                  @@ -68,7 +67,7 @@ function theme_filter_tips($variables) {
                       foreach ($tips as $name => $tiplist) {
                         if ($multiple) {
                           $output .= '
                  '; - $output .= '

                  ' . $name . '

                  '; + $output .= '

                  ' . check_plain($name) . '

                  '; } if (count($tiplist) > 0) { diff --git a/site/modules/filter/filter.test b/site/modules/filter/filter.test index cc0295b..34dcf04 100644 --- a/site/modules/filter/filter.test +++ b/site/modules/filter/filter.test @@ -70,6 +70,15 @@ class FilterCRUDTestCase extends DrupalWebTestCase { $this->assertFalse($db_format->status, 'Database: Disabled text format is marked as disabled.'); $formats = filter_formats(); $this->assertTrue(!isset($formats[$format->format]), 'filter_formats: Disabled text format no longer exists.'); + + // Add a new format to check for Xss in format name. + $format = new stdClass(); + $format->format = 'xss_format'; + $format->name = ''; + filter_format_save($format); + user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(filter_permission_name($format) => 1)); + $this->drupalGet('filter/tips'); + $this->assertNoRaw($format->name, 'Text format name contains no xss.'); } /** @@ -546,6 +555,27 @@ class FilterFormatAccessTestCase extends DrupalWebTestCase { $this->assertTrue(isset($options[$this->allowed_format->format]), 'The allowed text format appears as an option when adding a new node.'); $this->assertFalse(isset($options[$this->disallowed_format->format]), 'The disallowed text format does not appear as an option when adding a new node.'); $this->assertTrue(isset($options[filter_fallback_format()]), 'The fallback format appears as an option when adding a new node.'); + + // Check regular user access to the filter tips pages. + $this->drupalGet('filter/tips/' . $this->allowed_format->format); + $this->assertResponse(200); + $this->drupalGet('filter/tips/' . $this->disallowed_format->format); + $this->assertResponse(403); + $this->drupalGet('filter/tips/' . filter_fallback_format()); + $this->assertResponse(200); + $this->drupalGet('filter/tips/invalid-format'); + $this->assertResponse(404); + + // Check admin user access to the filter tips pages. + $this->drupalLogin($this->admin_user); + $this->drupalGet('filter/tips/' . $this->allowed_format->format); + $this->assertResponse(200); + $this->drupalGet('filter/tips/' . $this->disallowed_format->format); + $this->assertResponse(200); + $this->drupalGet('filter/tips/' . filter_fallback_format()); + $this->assertResponse(200); + $this->drupalGet('filter/tips/invalid-format'); + $this->assertResponse(404); } /** @@ -1090,8 +1120,12 @@ class FilterUnitTestCase extends DrupalUnitTestCase { $f = filter_xss("", array('img')); $this->assertNoNormalized($f, 'cript', 'HTML scheme clearing evasion -- embedded nulls.'); - $f = filter_xss('', array('img')); - $this->assertNoNormalized($f, 'javascript', 'HTML scheme clearing evasion -- spaces and metacharacters before scheme.'); + // @todo This dataset currently fails under 5.4 because of + // https://www.drupal.org/node/1210798. Restore after it's fixed. + if (version_compare(PHP_VERSION, '5.4.0', '<')) { + $f = filter_xss('', array('img')); + $this->assertNoNormalized($f, 'javascript', 'HTML scheme clearing evasion -- spaces and metacharacters before scheme.'); + } $f = filter_xss('', array('img')); $this->assertNoNormalized($f, 'vbscript', 'HTML scheme clearing evasion -- another scheme.'); @@ -1139,7 +1173,7 @@ class FilterUnitTestCase extends DrupalUnitTestCase { // Setup dummy filter object. $filter = new stdClass(); $filter->settings = array( - 'allowed_html' => '
                    1. ', + 'allowed_html' => '
                        1. ', 'filter_html_help' => 1, 'filter_html_nofollow' => 0, ); @@ -1175,6 +1209,10 @@ class FilterUnitTestCase extends DrupalUnitTestCase { $f = _filter_html(' ', $filter); $this->assertNoNormalized($f, 'onerror', 'HTML filter should remove empty on* attributes on default.'); + + // Custom tags are supported and should be allowed through. + $f = _filter_html('', $filter); + $this->assertNormalized($f, 'test-element', 'HTML filter should allow custom elements.'); } /** @@ -1260,6 +1298,7 @@ class FilterUnitTestCase extends DrupalUnitTestCase { // Create a e-mail that is too long. $long_email = str_repeat('a', 254) . '@example.com'; $too_long_email = str_repeat('b', 255) . '@example.com'; + $email_with_plus_sign = 'one+two@example.com'; // Filter selection/pattern matching. @@ -1273,12 +1312,13 @@ http://example.com or www.example.com ), // MAILTO URLs. ' -person@example.com or mailto:person2@example.com or ' . $long_email . ' but not ' . $too_long_email . ' +person@example.com or mailto:person2@example.com or ' . $email_with_plus_sign . ' or ' . $long_email . ' but not ' . $too_long_email . ' ' => array( 'person@example.com' => TRUE, 'mailto:person2@example.com' => TRUE, '' . $long_email . '' => TRUE, '' . $too_long_email . '' => FALSE, + '' . $email_with_plus_sign . '' => TRUE, ), // URI parts and special characters. ' @@ -1970,3 +2010,26 @@ class FilterSettingsTestCase extends DrupalWebTestCase { } } } + +/** + * Tests DOMDocument serialization. + */ +class FilterDOMSerializeTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Serialization', + 'description' => 'Test serialization of DOMDocument objects.', + 'group' => 'Filter', + ); + } + + /** + * Tests empty DOMDocument object. + */ + function testFilterEmptyDOMSerialization() { + $document = new DOMDocument(); + $result = filter_dom_serialize($document); + $this->assertEqual('', $result); + } +} diff --git a/site/modules/forum/forum.info b/site/modules/forum/forum.info index 57ea943..1d74702 100644 --- a/site/modules/forum/forum.info +++ b/site/modules/forum/forum.info @@ -9,8 +9,7 @@ files[] = forum.test configure = admin/structure/forum stylesheets[all][] = forum.css -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/forum/forum.module b/site/modules/forum/forum.module index 575de36..1224418 100644 --- a/site/modules/forum/forum.module +++ b/site/modules/forum/forum.module @@ -263,10 +263,10 @@ function _forum_node_check_node_type($node) { * Implements hook_node_view(). */ function forum_node_view($node, $view_mode) { - $vid = variable_get('forum_nav_vocabulary', 0); - $vocabulary = taxonomy_vocabulary_load($vid); if (_forum_node_check_node_type($node)) { if ($view_mode == 'full' && node_is_page($node)) { + $vid = variable_get('forum_nav_vocabulary', 0); + $vocabulary = taxonomy_vocabulary_load($vid); // Breadcrumb navigation $breadcrumb[] = l(t('Home'), NULL); $breadcrumb[] = l($vocabulary->name, 'forum'); diff --git a/site/modules/help/help.api.php b/site/modules/help/help.api.php deleted file mode 100644 index f7d9c08..0000000 --- a/site/modules/help/help.api.php +++ /dev/null @@ -1,63 +0,0 @@ -' . t('Blocks are boxes of content rendered into an area, or region, of a web page. The default theme Bartik, for example, implements the regions "Sidebar first", "Sidebar second", "Featured", "Content", "Header", "Footer", etc., and a block may appear in any one of these areas. The blocks administration page provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions.', array('@blocks' => url('admin/structure/block'))) . '

                          '; - - // Help for another path in the block module - case 'admin/structure/block': - return '

                          ' . t('This page provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions. Since not all themes implement the same regions, or display regions in the same way, blocks are positioned on a per-theme basis. Remember that your changes will not be saved until you click the Save blocks button at the bottom of the page.') . '

                          '; - } -} - -/** - * @} End of "addtogroup hooks". - */ diff --git a/site/modules/help/help.info b/site/modules/help/help.info index 2b51edc..86a154f 100644 --- a/site/modules/help/help.info +++ b/site/modules/help/help.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x files[] = help.test -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/image/image.admin.inc b/site/modules/image/image.admin.inc index 7e62621..cebe894 100644 --- a/site/modules/image/image.admin.inc +++ b/site/modules/image/image.admin.inc @@ -592,15 +592,15 @@ function image_crop_form($data) { '#type' => 'radios', '#title' => t('Anchor'), '#options' => array( - 'left-top' => t('Top') . ' ' . t('Left'), - 'center-top' => t('Top') . ' ' . t('Center'), - 'right-top' => t('Top') . ' ' . t('Right'), - 'left-center' => t('Center') . ' ' . t('Left'), + 'left-top' => t('Top left'), + 'center-top' => t('Top center'), + 'right-top' => t('Top right'), + 'left-center' => t('Center left'), 'center-center' => t('Center'), - 'right-center' => t('Center') . ' ' . t('Right'), - 'left-bottom' => t('Bottom') . ' ' . t('Left'), - 'center-bottom' => t('Bottom') . ' ' . t('Center'), - 'right-bottom' => t('Bottom') . ' ' . t('Right'), + 'right-center' => t('Center right'), + 'left-bottom' => t('Bottom left'), + 'center-bottom' => t('Bottom center'), + 'right-bottom' => t('Bottom right'), ), '#theme' => 'image_anchor', '#default_value' => $data['anchor'], diff --git a/site/modules/image/image.field.inc b/site/modules/image/image.field.inc index 2354738..6d1867c 100644 --- a/site/modules/image/image.field.inc +++ b/site/modules/image/image.field.inc @@ -351,7 +351,7 @@ function image_field_widget_form(&$form, &$form_state, $field, $instance, $langc if ($field['cardinality'] == 1) { // If there's only one field, return it as delta 0. if (empty($elements[0]['#default_value']['fid'])) { - $elements[0]['#description'] = theme('file_upload_help', array('description' => $instance['description'], 'upload_validators' => $elements[0]['#upload_validators'])); + $elements[0]['#description'] = theme('file_upload_help', array('description' => field_filter_xss($instance['description']), 'upload_validators' => $elements[0]['#upload_validators'])); } } else { diff --git a/site/modules/image/image.info b/site/modules/image/image.info index 9a45ade..d6190e3 100644 --- a/site/modules/image/image.info +++ b/site/modules/image/image.info @@ -7,8 +7,7 @@ dependencies[] = file files[] = image.test configure = admin/config/media/image-styles -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/image/image.module b/site/modules/image/image.module index b3ba7c4..dab8836 100644 --- a/site/modules/image/image.module +++ b/site/modules/image/image.module @@ -64,7 +64,7 @@ function image_help($path, $arg) { $effect = image_effect_definition_load($arg[7]); return isset($effect['help']) ? ('

                          ' . $effect['help'] . '

                          ') : NULL; case 'admin/config/media/image-styles/edit/%/effects/%': - $effect = ($arg[5] == 'add') ? image_effect_definition_load($arg[6]) : image_effect_load($arg[6], $arg[4]); + $effect = ($arg[5] == 'add') ? image_effect_definition_load($arg[6]) : image_effect_load($arg[7], $arg[5]); return isset($effect['help']) ? ('

                          ' . $effect['help'] . '

                          ') : NULL; } } @@ -801,6 +801,8 @@ function image_style_options($include_empty = TRUE, $output = CHECK_PLAIN) { * * @param $style * The image style + * @param $scheme + * The file scheme, for example 'public' for public files. */ function image_style_deliver($style, $scheme) { $args = func_get_args(); @@ -833,9 +835,9 @@ function image_style_deliver($style, $scheme) { file_download($scheme, file_uri_target($derivative_uri)); } else { - $headers = module_invoke_all('file_download', $image_uri); - if (in_array(-1, $headers) || empty($headers)) { - return drupal_access_denied(); + $headers = file_download_headers($image_uri); + if (empty($headers)) { + return MENU_ACCESS_DENIED; } if (count($headers)) { foreach ($headers as $name => $value) { @@ -845,6 +847,12 @@ function image_style_deliver($style, $scheme) { } } + // Confirm that the original source image exists before trying to process it. + if (!is_file($image_uri)) { + watchdog('image', 'Source image at %source_image_path not found while trying to generate derivative image at %derivative_path.', array('%source_image_path' => $image_uri, '%derivative_path' => $derivative_uri)); + return MENU_NOT_FOUND; + } + // Don't start generating the image if the derivative already exists or if // generation is in progress in another thread. $lock_name = 'image_style_deliver:' . $style['name'] . ':' . drupal_hash_base64($image_uri); @@ -854,6 +862,7 @@ function image_style_deliver($style, $scheme) { // Tell client to retry again in 3 seconds. Currently no browsers are known // to support Retry-After. drupal_add_http_header('Status', '503 Service Unavailable'); + drupal_add_http_header('Content-Type', 'text/html; charset=utf-8'); drupal_add_http_header('Retry-After', 3); print t('Image generation in progress. Try again shortly.'); drupal_exit(); @@ -875,6 +884,7 @@ function image_style_deliver($style, $scheme) { else { watchdog('image', 'Unable to generate the derived image located at %path.', array('%path' => $derivative_uri)); drupal_add_http_header('Status', '500 Internal Server Error'); + drupal_add_http_header('Content-Type', 'text/html; charset=utf-8'); print t('Error generating image.'); drupal_exit(); } @@ -972,7 +982,9 @@ function image_style_flush($style) { // Delete the style directory in each registered wrapper. $wrappers = file_get_stream_wrappers(STREAM_WRAPPERS_WRITE_VISIBLE); foreach ($wrappers as $wrapper => $wrapper_data) { - file_unmanaged_delete_recursive($wrapper . '://styles/' . $style['name']); + if (file_exists($directory = $wrapper . '://styles/' . $style['name'])) { + file_unmanaged_delete_recursive($directory); + } } // Let other modules update as necessary on flush. @@ -1010,10 +1022,22 @@ function image_style_flush($style) { */ function image_style_url($style_name, $path) { $uri = image_style_path($style_name, $path); + + // The passed-in $path variable can be either a relative path or a full URI. + $original_uri = file_uri_scheme($path) ? file_stream_wrapper_uri_normalize($path) : file_build_uri($path); + // The token query is added even if the 'image_allow_insecure_derivatives' // variable is TRUE, so that the emitted links remain valid if it is changed // back to the default FALSE. - $token_query = array(IMAGE_DERIVATIVE_TOKEN => image_style_path_token($style_name, file_stream_wrapper_uri_normalize($path))); + // However, sites which need to prevent the token query from being emitted at + // all can additionally set the 'image_suppress_itok_output' variable to TRUE + // to achieve that (if both are set, the security token will neither be + // emitted in the image derivative URL nor checked for in + // image_style_deliver()). + $token_query = array(); + if (!variable_get('image_suppress_itok_output', FALSE)) { + $token_query = array(IMAGE_DERIVATIVE_TOKEN => image_style_path_token($style_name, $original_uri)); + } // If not using clean URLs, the image derivative callback is only available // with the query string. If the file does not exist, use url() to ensure @@ -1025,8 +1049,12 @@ function image_style_url($style_name, $path) { } $file_url = file_create_url($uri); - // Append the query string with the token. - return $file_url . (strpos($file_url, '?') !== FALSE ? '&' : '?') . drupal_http_build_query($token_query); + // Append the query string with the token, if necessary. + if ($token_query) { + $file_url .= (strpos($file_url, '?') !== FALSE ? '&' : '?') . drupal_http_build_query($token_query); + } + + return $file_url; } /** diff --git a/site/modules/image/image.test b/site/modules/image/image.test index 7db68e6..0c26ffa 100644 --- a/site/modules/image/image.test +++ b/site/modules/image/image.test @@ -32,7 +32,7 @@ class ImageFieldTestCase extends DrupalWebTestCase { function setUp() { parent::setUp('image'); - $this->admin_user = $this->drupalCreateUser(array('access content', 'access administration pages', 'administer site configuration', 'administer content types', 'administer nodes', 'create article content', 'edit any article content', 'delete any article content', 'administer image styles')); + $this->admin_user = $this->drupalCreateUser(array('access content', 'access administration pages', 'administer site configuration', 'administer content types', 'administer nodes', 'create article content', 'edit any article content', 'delete any article content', 'administer image styles', 'administer fields')); $this->drupalLogin($this->admin_user); } @@ -77,6 +77,24 @@ class ImageFieldTestCase extends DrupalWebTestCase { return field_create_instance($instance); } + /** + * Create a random style. + * + * @return array + * A list containing the details of the generated image style. + */ + function createRandomStyle() { + $style_name = strtolower($this->randomName(10)); + $style_label = $this->randomString(); + image_style_save(array('name' => $style_name, 'label' => $style_label)); + $style_path = 'admin/config/media/image-styles/edit/' . $style_name; + return array( + 'name' => $style_name, + 'label' => $style_label, + 'path' => $style_path, + ); + } + /** * Upload an image to a node. * @@ -173,6 +191,32 @@ class ImageStylesPathAndUrlTestCase extends DrupalWebTestCase { $this->_testImageStyleUrlAndPath('public', TRUE, TRUE); } + /** + * Test that an invalid source image returns a 404. + */ + function testImageStyleUrlForMissingSourceImage() { + $non_existent_uri = 'public://foo.png'; + $generated_url = image_style_url($this->style_name, $non_existent_uri); + $this->drupalGet($generated_url); + $this->assertResponse(404, 'Accessing an image style URL with a source image that does not exist provides a 404 error response.'); + } + + /** + * Test that we do not pass an array to drupal_add_http_header. + */ + function testImageContentTypeHeaders() { + $files = $this->drupalGetTestFiles('image'); + $file = array_shift($files); + // Copy the test file to private folder. + $private_file = file_copy($file, 'private://', FILE_EXISTS_RENAME); + // Tell image_module_test module to return the headers we want to test. + variable_set('image_module_test_invalid_headers', $private_file->uri); + // Invoke image_style_deliver so it will try to set headers. + $generated_url = image_style_url($this->style_name, $private_file->uri); + $this->drupalGet($generated_url); + variable_del('image_module_test_invalid_headers'); + } + /** * Test image_style_url(). */ @@ -216,10 +260,20 @@ class ImageStylesPathAndUrlTestCase extends DrupalWebTestCase { } // Add some extra chars to the token. $this->drupalGet(str_replace(IMAGE_DERIVATIVE_TOKEN . '=', IMAGE_DERIVATIVE_TOKEN . '=Zo', $generate_url)); - $this->assertResponse(403, 'Image was inaccessible at the URL wih an invalid token.'); + $this->assertResponse(403, 'Image was inaccessible at the URL with an invalid token.'); // Change the parameter name so the token is missing. $this->drupalGet(str_replace(IMAGE_DERIVATIVE_TOKEN . '=', 'wrongparam=', $generate_url)); - $this->assertResponse(403, 'Image was inaccessible at the URL wih a missing token.'); + $this->assertResponse(403, 'Image was inaccessible at the URL with a missing token.'); + + // Check that the generated URL is the same when we pass in a relative path + // rather than a URI. We need to temporarily switch the default scheme to + // match the desired scheme before testing this, then switch it back to the + // "temporary" scheme used throughout this test afterwards. + variable_set('file_default_scheme', $scheme); + $relative_path = file_uri_target($original_uri); + $generate_url_from_relative_path = image_style_url($this->style_name, $relative_path); + $this->assertEqual($generate_url, $generate_url_from_relative_path, 'Generated URL is the same regardless of whether it came from a relative path or a file URI.'); + variable_set('file_default_scheme', 'temporary'); // Fetch the URL that generates the file. $this->drupalGet($generate_url); @@ -231,7 +285,7 @@ class ImageStylesPathAndUrlTestCase extends DrupalWebTestCase { $this->assertEqual($this->drupalGetHeader('Content-Length'), $generated_image_info['file_size'], 'Expected Content-Length was reported.'); if ($scheme == 'private') { $this->assertEqual($this->drupalGetHeader('Expires'), 'Sun, 19 Nov 1978 05:00:00 GMT', 'Expires header was sent.'); - $this->assertEqual($this->drupalGetHeader('Cache-Control'), 'no-cache, must-revalidate, post-check=0, pre-check=0', 'Cache-Control header was set to prevent caching.'); + $this->assertEqual($this->drupalGetHeader('Cache-Control'), 'no-cache, must-revalidate', 'Cache-Control header was set to prevent caching.'); $this->assertEqual($this->drupalGetHeader('X-Image-Owned-By'), 'image_module_test', 'Expected custom header has been added.'); // Make sure that a second request to the already existing derivate works @@ -268,7 +322,7 @@ class ImageStylesPathAndUrlTestCase extends DrupalWebTestCase { elseif ($clean_url) { // Add some extra chars to the token. $this->drupalGet(str_replace(IMAGE_DERIVATIVE_TOKEN . '=', IMAGE_DERIVATIVE_TOKEN . '=Zo', $generate_url)); - $this->assertResponse(200, 'Existing image was accessible at the URL wih an invalid token.'); + $this->assertResponse(200, 'Existing image was accessible at the URL with an invalid token.'); } // Allow insecure image derivatives to be created for the remainder of this @@ -310,6 +364,15 @@ class ImageStylesPathAndUrlTestCase extends DrupalWebTestCase { $this->drupalGet($nested_url); $this->assertResponse(200, 'Image was accessible when a correct token was provided in the URL.'); + // Suppress the security token in the URL, then get the URL of a file. Check + // that the security token is not present in the URL but that the image is + // still accessible. + variable_set('image_suppress_itok_output', TRUE); + $generate_url = image_style_url($this->style_name, $original_uri); + $this->assertIdentical(strpos($generate_url, IMAGE_DERIVATIVE_TOKEN . '='), FALSE, 'The security token does not appear in the image style URL.'); + $this->drupalGet($generate_url); + $this->assertResponse(200, 'Image was accessible at the URL with a missing token.'); + // Check that requesting a nonexistent image does not create any new // directories in the file system. $directory = $scheme . '://styles/' . $this->style_name . '/' . $scheme . '/' . $this->randomName(); @@ -440,6 +503,58 @@ class ImageEffectsUnitTest extends ImageToolkitTestCase { } } +/** + * Tests the administrative user interface. + */ +class ImageAdminUiTestCase extends ImageFieldTestCase { + public static function getInfo() { + return array( + 'name' => 'Administrative user interface', + 'description' => 'Tests the forms used in the administrative user interface.', + 'group' => 'Image', + ); + } + + function setUp() { + parent::setUp(array('image')); + } + + /** + * Test if the help text is available on the add effect form. + */ + function testAddEffectHelpText() { + // Create a random image style. + $style = $this->createRandomStyle(); + + // Open the add effect form and check for the help text. + $this->drupalGet($style['path'] . '/add/image_crop'); + $this->assertText(t('Cropping will remove portions of an image to make it the specified dimensions.'), 'The image style effect help text was displayed on the add effect page.'); + } + + /** + * Test if the help text is available on the edit effect form. + */ + function testEditEffectHelpText() { + // Create a random image style. + $random_style = $this->createRandomStyle(); + + // Add the crop effect to the image style. + $edit = array(); + $edit['data[width]'] = 20; + $edit['data[height]'] = 20; + $this->drupalPost($random_style['path'] . '/add/image_crop', $edit, t('Add effect')); + + // Open the edit effect form and check for the help text. + drupal_static_reset('image_styles'); + $style = image_style_load($random_style['name']); + + foreach ($style['effects'] as $ieid => $effect) { + $this->drupalGet($random_style['path'] . '/effects/' . $ieid); + $this->assertText(t('Cropping will remove portions of an image to make it the specified dimensions.'), 'The image style effect help text was displayed on the edit effect page.'); + } + } +} + /** * Tests creation, deletion, and editing of image styles and effects. */ diff --git a/site/modules/image/tests/image_module_test.info b/site/modules/image/tests/image_module_test.info index 1616678..5182a09 100644 --- a/site/modules/image/tests/image_module_test.info +++ b/site/modules/image/tests/image_module_test.info @@ -6,8 +6,7 @@ core = 7.x files[] = image_module_test.module hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/image/tests/image_module_test.module b/site/modules/image/tests/image_module_test.module index 8a322fb..fc66d9b 100644 --- a/site/modules/image/tests/image_module_test.module +++ b/site/modules/image/tests/image_module_test.module @@ -9,6 +9,9 @@ function image_module_test_file_download($uri) { if (variable_get('image_module_test_file_download', FALSE) == $uri) { return array('X-Image-Owned-By' => 'image_module_test'); } + if (variable_get('image_module_test_invalid_headers', FALSE) == $uri) { + return array('Content-Type' => 'image/png'); + } } /** diff --git a/site/modules/locale/locale.admin.inc b/site/modules/locale/locale.admin.inc index f1a71dd..acf6eb2 100644 --- a/site/modules/locale/locale.admin.inc +++ b/site/modules/locale/locale.admin.inc @@ -1139,11 +1139,11 @@ function locale_translate_edit_form($form, &$form_state, $lid) { '#value' => $source->location ); - // Include default form controls with empty values for all languages. - // This ensures that the languages are always in the same order in forms. + // Include both translated and not yet translated target languages in the + // list. The source language is English for built-in strings and the default + // language for other strings. $languages = language_list(); $default = language_default(); - // We don't need the default language value, that value is in $source. $omit = $source->textgroup == 'default' ? 'en' : $default->language; unset($languages[($omit)]); $form['translations'] = array('#tree' => TRUE); @@ -1194,7 +1194,7 @@ function locale_translate_edit_form_submit($form, &$form_state) { $translation = db_query("SELECT translation FROM {locales_target} WHERE lid = :lid AND language = :language", array(':lid' => $lid, ':language' => $key))->fetchField(); if (!empty($value)) { // Only update or insert if we have a value to use. - if (!empty($translation)) { + if (is_string($translation)) { db_update('locales_target') ->fields(array( 'translation' => $value, @@ -1242,9 +1242,7 @@ function locale_translate_delete_page($lid) { if ($source = db_query('SELECT lid, source FROM {locales_source} WHERE lid = :lid', array(':lid' => $lid))->fetchObject()) { return drupal_get_form('locale_translate_delete_form', $source); } - else { - return drupal_not_found(); - } + return MENU_NOT_FOUND; } /** diff --git a/site/modules/locale/locale.info b/site/modules/locale/locale.info index bc59c28..8a7c1da 100644 --- a/site/modules/locale/locale.info +++ b/site/modules/locale/locale.info @@ -6,8 +6,7 @@ core = 7.x files[] = locale.test configure = admin/config/regional/language -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/locale/locale.test b/site/modules/locale/locale.test index edf72e4..db87e05 100644 --- a/site/modules/locale/locale.test +++ b/site/modules/locale/locale.test @@ -393,6 +393,16 @@ class LocaleTranslationFunctionalTest extends DrupalWebTestCase { // The indicator should not be here. $this->assertNoRaw($language_indicator, 'String is translated.'); + // Verify that a translation set which has an empty target string can be + // updated without any database error. + db_update('locales_target') + ->fields(array('translation' => '')) + ->condition('language', $langcode, '=') + ->condition('lid', $lid, '=') + ->execute(); + $this->drupalPost('admin/config/regional/translate/edit/' . $lid, $edit, t('Save translations')); + $this->assertText(t('The string has been saved.'), 'The string has been saved.'); + // Try to edit a non-existent string and ensure we're redirected correctly. // Assuming we don't have 999,999 strings already. $random_lid = 999999; @@ -809,7 +819,7 @@ class LocalePluralFormatTest extends DrupalWebTestCase { * Additional options to pass to the translation import form. */ function importPoFile($contents, array $options = array()) { - $name = tempnam('temporary://', "po_") . '.po'; + $name = drupal_tempnam('temporary://', "po_") . '.po'; file_put_contents($name, $contents); $options['files[file]'] = $name; $this->drupalPost('admin/config/regional/translate/import', $options, t('Import')); @@ -1103,7 +1113,7 @@ class LocaleImportFunctionalTest extends DrupalWebTestCase { * Additional options to pass to the translation import form. */ function importPoFile($contents, array $options = array()) { - $name = tempnam('temporary://', "po_") . '.po'; + $name = drupal_tempnam('temporary://', "po_") . '.po'; file_put_contents($name, $contents); $options['files[file]'] = $name; $this->drupalPost('admin/config/regional/translate/import', $options, t('Import')); @@ -1202,7 +1212,7 @@ EOF; * Helper function that returns a .po file with context. */ function getPoFileWithContext() { - // Croatian (code hr) is one the the languages that have a different + // Croatian (code hr) is one of the languages that have a different // form for the full name and the abbreviated name for the month May. return <<< EOF msgid "" @@ -1330,7 +1340,7 @@ class LocaleExportFunctionalTest extends DrupalWebTestCase { function testExportTranslation() { // First import some known translations. // This will also automatically enable the 'fr' language. - $name = tempnam('temporary://', "po_") . '.po'; + $name = drupal_tempnam('temporary://', "po_") . '.po'; file_put_contents($name, $this->getPoFile()); $this->drupalPost('admin/config/regional/translate/import', array( 'langcode' => 'fr', @@ -1685,7 +1695,7 @@ class LocaleBrowserDetectionTest extends DrupalUnitTestCase { ); $test_cases = array( - // Equal qvalue for each language, choose the site prefered one. + // Equal qvalue for each language, choose the site preferred one. 'en,en-US,fr-CA,fr,es-MX' => 'en', 'en-US,en,fr-CA,fr,es-MX' => 'en', 'fr,en' => 'en', @@ -2237,6 +2247,37 @@ class LocaleContentFunctionalTest extends DrupalWebTestCase { $this->drupalLogout(); } + + /** + * Verifies that nodes may be created with different languages. + */ + function testNodeCreationWithLanguage() { + // Create an admin user and log them in. + $perms = array( + // Standard node permissions. + 'create page content', + 'administer content types', + 'administer nodes', + 'bypass node access', + // Locale. + 'administer languages', + ); + $web_user = $this->drupalCreateUser($perms); + $this->drupalLogin($web_user); + + // Create some test nodes using different langcodes. + foreach (array(LANGUAGE_NONE, 'en', 'fr') as $langcode) { + $node_args = array( + 'type' => 'page', + 'promote' => 1, + 'language' => $langcode, + ); + $node = $this->drupalCreateNode($node_args); + $node_reloaded = node_load($node->nid, NULL, TRUE); + $this->assertEqual($node_reloaded->language, $langcode, format_string('The language code of the node was successfully set to @langcode.', array('@langcode' => $langcode))); + } + } + } /** @@ -2629,6 +2670,68 @@ class LocaleUrlRewritingTest extends DrupalWebTestCase { $this->drupalGet("$prefix/$path"); $this->assertResponse(404, $message2); } + + /** + * Check URL rewriting when using a domain name and a non-standard port. + */ + function testDomainNameNegotiationPort() { + $language_domain = 'example.fr'; + $edit = array( + 'locale_language_negotiation_url_part' => 1, + ); + $this->drupalPost('admin/config/regional/language/configure/url', $edit, t('Save configuration')); + $edit = array( + 'prefix' => '', + 'domain' => $language_domain + ); + $this->drupalPost('admin/config/regional/language/edit/fr', $edit, t('Save language')); + + // Enable domain configuration. + variable_set('locale_language_negotiation_url_part', LOCALE_LANGUAGE_NEGOTIATION_URL_DOMAIN); + + // Reset static caching. + drupal_static_reset('language_list'); + drupal_static_reset('language_url_outbound_alter'); + drupal_static_reset('language_url_rewrite_url'); + + // In case index.php is part of the URLs, we need to adapt the asserted + // URLs as well. + $index_php = strpos(url('', array('absolute' => TRUE)), 'index.php') !== FALSE; + + // Remember current HTTP_HOST. + $http_host = $_SERVER['HTTP_HOST']; + + // Fake a different port. + $_SERVER['HTTP_HOST'] .= ':88'; + + // Create an absolute French link. + $languages = language_list(); + $language = $languages['fr']; + $url = url('', array( + 'absolute' => TRUE, + 'language' => $language + )); + + $expected = 'http://example.fr:88/'; + $expected .= $index_php ? 'index.php/' : ''; + + $this->assertEqual($url, $expected, 'The right port is used.'); + + // If we set the port explicitly in url(), it should not be overriden. + $url = url('', array( + 'absolute' => TRUE, + 'language' => $language, + 'base_url' => $GLOBALS['base_url'] . ':90', + )); + + $expected = 'http://example.fr:90/'; + $expected .= $index_php ? 'index.php/' : ''; + + $this->assertEqual($url, $expected, 'A given port is not overriden.'); + + // Restore HTTP_HOST. + $_SERVER['HTTP_HOST'] = $http_host; + } } /** @@ -3141,3 +3244,46 @@ class LocaleCSSAlterTest extends DrupalWebTestCase { $this->assertRaw('@import url("' . $base_url . '/modules/system/system.messages.css' . $query_string . '");' . "\n" . '@import url("' . $base_url . '/modules/system/system.messages-rtl.css' . $query_string . '");' . "\n", 'CSS: system.messages-rtl.css is added directly after system.messages.css.'); } } + +/** + * Tests locale translation safe string handling. + */ +class LocaleStringIsSafeTest extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Test if a string is safe', + 'description' => 'Tests locale translation safe string handling.', + 'group' => 'Locale', + ); + } + + function setUp() { + parent::setUp('locale'); + } + + /** + * Tests for locale_string_is_safe(). + */ + public function testLocaleStringIsSafe() { + // Check a translatable string without HTML. + $string = 'Hello world!'; + $result = locale_string_is_safe($string); + $this->assertTrue($result); + + // Check a translatable string which includes trustable HTML. + $string = 'Hello world!'; + $result = locale_string_is_safe($string); + $this->assertTrue($result); + + // Check an untranslatable string which includes untrustable HTML (according + // to the locale_string_is_safe() function definition). + $string = 'Hello world!'; + $result = locale_string_is_safe($string); + $this->assertFalse($result); + + // Check a translatable string which includes a token in an href attribute. + $string = 'Hi user'; + $result = locale_string_is_safe($string); + $this->assertTrue($result); + } +} diff --git a/site/modules/locale/tests/locale_test.info b/site/modules/locale/tests/locale_test.info index 21ce383..76a18f7 100644 --- a/site/modules/locale/tests/locale_test.info +++ b/site/modules/locale/tests/locale_test.info @@ -5,8 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/menu/menu.admin.inc b/site/modules/menu/menu.admin.inc index 68d8e12..a24703c 100644 --- a/site/modules/menu/menu.admin.inc +++ b/site/modules/menu/menu.admin.inc @@ -281,6 +281,7 @@ function menu_edit_item($form, &$form_state, $type, $item, $menu) { $form['link_title'] = array( '#type' => 'textfield', '#title' => t('Menu link title'), + '#maxlength' => 255, '#default_value' => $item['link_title'], '#description' => t('The text to be used for this link in the menu.'), '#required' => TRUE, @@ -305,7 +306,7 @@ function menu_edit_item($form, &$form_state, $type, $item, $menu) { '#title' => t('Path'), '#maxlength' => 255, '#default_value' => $path, - '#description' => t('The path for this menu link. This can be an internal Drupal path such as %add-node or an external URL such as %drupal. Enter %front to link to the front page.', array('%front' => '', '%add-node' => 'node/add', '%drupal' => 'http://drupal.org')), + '#description' => t('The path for this menu link. This can be an internal path such as %add-node or an external URL such as %example. Enter %front to link to the front page.', array('%front' => '', '%add-node' => 'node/add', '%example' => 'http://example.com')), '#required' => TRUE, ); $form['actions']['delete'] = array( @@ -512,8 +513,7 @@ function menu_delete_menu_page($menu) { // System-defined menus may not be deleted. $system_menus = menu_list_system_menus(); if (isset($system_menus[$menu['menu_name']])) { - drupal_access_denied(); - return; + return MENU_ACCESS_DENIED; } return drupal_get_form('menu_delete_menu_confirm', $menu); } @@ -622,8 +622,7 @@ function menu_item_delete_page($item) { // Links defined via hook_menu may not be deleted. Updated items are an // exception, as they can be broken. if ($item['module'] == 'system' && !$item['updated']) { - drupal_access_denied(); - return; + return MENU_ACCESS_DENIED; } return drupal_get_form('menu_item_delete_form', $item); } diff --git a/site/modules/menu/menu.info b/site/modules/menu/menu.info index d85c5e5..26163ee 100644 --- a/site/modules/menu/menu.info +++ b/site/modules/menu/menu.info @@ -6,8 +6,7 @@ core = 7.x files[] = menu.test configure = admin/structure/menu -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/menu/menu.module b/site/modules/menu/menu.module index 6444791..27b1675 100644 --- a/site/modules/menu/menu.module +++ b/site/modules/menu/menu.module @@ -69,7 +69,7 @@ function menu_menu() { 'title' => 'Parent menu items', 'page callback' => 'menu_parent_options_js', 'type' => MENU_CALLBACK, - 'access arguments' => array(TRUE), + 'access arguments' => array('administer menu'), ); $items['admin/structure/menu/list'] = array( 'title' => 'List menus', @@ -674,6 +674,7 @@ function menu_form_node_form_alter(&$form, $form_state) { $form['menu']['link']['link_title'] = array( '#type' => 'textfield', '#title' => t('Menu link title'), + '#maxlength' => 255, '#default_value' => $link['link_title'], ); diff --git a/site/modules/menu/menu.test b/site/modules/menu/menu.test index 95e0ee9..bb792ee 100644 --- a/site/modules/menu/menu.test +++ b/site/modules/menu/menu.test @@ -72,6 +72,17 @@ class MenuTestCase extends DrupalWebTestCase { $saved_item = menu_link_load($item['mlid']); $this->assertEqual($description, $saved_item['options']['attributes']['title'], 'Saving an existing link updates the description (title attribute)'); $this->resetMenuLink($item, $old_title); + + // Test that the page title is correct when a local task appears in a + // top-level menu item. See https://www.drupal.org/node/1973262. + $item = $this->addMenuLink(0, 'user/register', 'user-menu'); + $this->drupalGet('user/password'); + $this->assertNoTitle('Home | Drupal'); + $this->drupalLogout(); + $this->drupalGet('user/register'); + $this->assertTitle($item['link_title'] . ' | Drupal'); + $this->drupalGet('user'); + $this->assertNoTitle('Home | Drupal'); } /** @@ -513,6 +524,23 @@ class MenuTestCase extends DrupalWebTestCase { } } + /** + * Test administrative users other than user 1 can access the menu parents AJAX callback. + */ + public function testMenuParentsJsAccess() { + $admin = $this->drupalCreateUser(array('administer menu')); + $this->drupalLogin($admin); + // Just check access to the callback overall, the POST data is irrelevant. + $this->drupalGetAJAX('admin/structure/menu/parents'); + $this->assertResponse(200); + + // Do standard user tests. + // Login the user. + $this->drupalLogin($this->std_user); + $this->drupalGetAJAX('admin/structure/menu/parents'); + $this->assertResponse(403); + } + /** * Get standard menu link. */ @@ -620,7 +648,12 @@ class MenuNodeTestCase extends DrupalWebTestCase { ); $this->drupalPost('admin/structure/types/manage/page', $edit, t('Save content type')); - // Create a node. + // Verify that the menu link title on the node add form has the correct + // maxlength. + $this->drupalGet('node/add/page'); + $this->assertPattern('//', 'Menu link title field has correct maxlength in node add form.'); + + // Create a node with menu link disabled. $node_title = $this->randomName(); $language = LANGUAGE_NONE; $edit = array( @@ -656,6 +689,10 @@ class MenuNodeTestCase extends DrupalWebTestCase { $this->drupalGet('node/' . $node->nid . '/edit'); $this->assertOptionSelected('edit-menu-weight', 17, 'Menu weight correct in edit form'); + // Verify that the menu link title on the node edit form has the correct + // maxlength. + $this->assertPattern('//', 'Menu link title field has correct maxlength in node edit form.'); + // Edit the node and remove the menu link. $edit = array( 'menu[enabled]' => FALSE, diff --git a/site/modules/node/content_types.inc b/site/modules/node/content_types.inc index 4b722ee..c451dc7 100644 --- a/site/modules/node/content_types.inc +++ b/site/modules/node/content_types.inc @@ -11,7 +11,7 @@ function node_overview_types() { $types = node_type_get_types(); $names = node_type_get_names(); - $field_ui = module_exists('field_ui'); + $field_ui = module_exists('field_ui') && user_access('administer fields'); $header = array(t('Name'), array('data' => t('Operations'), 'colspan' => $field_ui ? '4' : '2')); $rows = array(); @@ -255,11 +255,11 @@ function _node_characters($length) { */ function node_type_form_validate($form, &$form_state) { $type = new stdClass(); - $type->type = trim($form_state['values']['type']); + $type->type = $form_state['values']['type']; $type->name = trim($form_state['values']['name']); // Work out what the type was before the user submitted this form - $old_type = trim($form_state['values']['old_type']); + $old_type = $form_state['values']['old_type']; $types = node_type_get_names(); @@ -288,7 +288,7 @@ function node_type_form_submit($form, &$form_state) { $type = node_type_set_defaults(); - $type->type = trim($form_state['values']['type']); + $type->type = $form_state['values']['type']; $type->name = trim($form_state['values']['name']); $type->orig_type = trim($form_state['values']['orig_type']); $type->old_type = isset($form_state['values']['old_type']) ? $form_state['values']['old_type'] : $type->type; diff --git a/site/modules/node/node.admin.inc b/site/modules/node/node.admin.inc index be09b37..eead4ea 100644 --- a/site/modules/node/node.admin.inc +++ b/site/modules/node/node.admin.inc @@ -329,6 +329,8 @@ function _node_mass_update_helper($nid, $updates) { } /** + * Implements callback_batch_operation(). + * * Executes a batch operation for node_mass_update(). * * @param array $nodes @@ -367,7 +369,9 @@ function _node_mass_update_batch_process($nodes, $updates, &$context) { } /** - * Menu callback: Reports the status of batch operation for node_mass_update(). + * Implements callback_batch_finished(). + * + * Reports the status of batch operation for node_mass_update(). * * @param bool $success * A boolean indicating whether the batch mass update operation successfully @@ -471,6 +475,7 @@ function node_admin_nodes() { $header['operations'] = array('data' => t('Operations')); $query = db_select('node', 'n')->extend('PagerDefault')->extend('TableSort'); + $query->addTag('node_admin_filter'); node_build_filter_query($query); if (!user_access('bypass node access')) { @@ -503,14 +508,17 @@ function node_admin_nodes() { $options = array(); foreach ($nodes as $node) { $langcode = entity_language('node', $node); - $l_options = $langcode != LANGUAGE_NONE && isset($languages[$langcode]) ? array('language' => $languages[$langcode]) : array(); + $uri = entity_uri('node', $node); + if ($langcode != LANGUAGE_NONE && isset($languages[$langcode])) { + $uri['options']['language'] = $languages[$langcode]; + } $options[$node->nid] = array( 'title' => array( 'data' => array( '#type' => 'link', '#title' => $node->title, - '#href' => 'node/' . $node->nid, - '#options' => $l_options, + '#href' => $uri['path'], + '#options' => $uri['options'], '#suffix' => ' ' . theme('mark', array('type' => node_mark($node->nid, $node->changed))), ), ), @@ -695,6 +703,7 @@ function node_multiple_delete_confirm($form, &$form_state, $nodes) { function node_multiple_delete_confirm_submit($form, &$form_state) { if ($form_state['values']['confirm']) { node_delete_multiple(array_keys($form_state['values']['nodes'])); + cache_clear_all(); $count = count($form_state['values']['nodes']); watchdog('content', 'Deleted @count posts.', array('@count' => $count)); drupal_set_message(format_plural($count, 'Deleted 1 post.', 'Deleted @count posts.')); diff --git a/site/modules/node/node.api.php b/site/modules/node/node.api.php index f8dcfde..c8176a7 100644 --- a/site/modules/node/node.api.php +++ b/site/modules/node/node.api.php @@ -17,11 +17,14 @@ * During node operations (create, update, view, delete, etc.), there are * several sets of hooks that get invoked to allow modules to modify the base * node operation: - * - Node-type-specific hooks: These hooks are only invoked on the primary - * module, using the "base" return component of hook_node_info() as the - * function prefix. For example, poll.module defines the base for the Poll - * content type as "poll", so during creation of a poll node, hook_insert() is - * only invoked by calling poll_insert(). + * - Node-type-specific hooks: When defining a node type, hook_node_info() + * returns a 'base' component. Node-type-specific hooks are named + * base_hookname() instead of mymodule_hookname() (in a module called + * 'mymodule' for example). Only the node type's corresponding implementation + * is invoked. For example, poll_node_info() in poll.module defines the base + * for the 'poll' node type as 'poll'. So when a poll node is created, + * hook_insert() is invoked on poll_insert() only. + * Hooks that are node-type-specific are noted below. * - All-module hooks: This set of hooks is invoked on all implementing modules, * to allow other modules to modify what the primary node module is doing. For * example, hook_node_insert() is invoked on all modules when creating a poll @@ -195,7 +198,7 @@ function hook_node_grants($account, $op) { if (user_access('access private content', $account)) { $grants['example'] = array(1); } - $grants['example_owner'] = array($account->uid); + $grants['example_author'] = array($account->uid); return $grants; } @@ -885,11 +888,10 @@ function hook_node_view_alter(&$build) { * name as the key. Each sub-array has up to 10 attributes. Possible * attributes: * - name: (required) The human-readable name of the node type. - * - base: (required) The base string used to construct callbacks - * corresponding to this node type (for example, if base is defined as - * example_foo, then example_foo_insert will be called when inserting a node - * of that type). This string is usually the name of the module, but not - * always. + * - base: (required) The base name for implementations of node-type-specific + * hooks that respond to this node type. Base is usually the name of the + * module or 'node_content', but not always. See + * @link node_api_hooks Node API hooks @endlink for more information. * - description: (required) A brief description of the node type. * - help: (optional) Help information shown to the user when creating a node * of this type. @@ -948,7 +950,7 @@ function hook_node_info() { * 'recent', or 'comments'. The values should be arrays themselves, with the * following keys available: * - title: (required) The human readable name of the ranking mechanism. - * - join: (optional) The part of a query string to join to any additional + * - join: (optional) An array with information to join any additional * necessary table. This is not necessary if the table required is already * joined to by the base query, such as for the {node} table. Other tables * should use the full table name as an alias to avoid naming collisions. @@ -972,7 +974,12 @@ function hook_ranking() { 'title' => t('Average vote'), // Note that we use i.sid, the search index's search item id, rather than // n.nid. - 'join' => 'LEFT JOIN {vote_node_data} vote_node_data ON vote_node_data.nid = i.sid', + 'join' => array( + 'type' => 'LEFT', + 'table' => 'vote_node_data', + 'alias' => 'vote_node_data', + 'on' => 'vote_node_data.nid = i.sid', + ), // The highest possible score should be 1, and the lowest possible score, // always 0, should be 0. 'score' => 'vote_node_data.average / CAST(%f AS DECIMAL)', @@ -1030,12 +1037,23 @@ function hook_node_type_delete($info) { /** * Respond to node deletion. * - * This hook is invoked only on the module that defines the node's content type - * (use hook_node_delete() to respond to all node deletions). + * This is a node-type-specific hook, which is invoked only for the node type + * being affected. See + * @link node_api_hooks Node API hooks @endlink for more information. * - * This hook is invoked from node_delete_multiple() after the node has been - * removed from the node table in the database, before hook_node_delete() is - * invoked, and before field_attach_delete() is called. + * Use hook_node_delete() to respond to node deletion of all node types. + * + * This hook is invoked from node_delete_multiple() before hook_node_delete() + * is invoked and before field_attach_delete() is called. + * + * Note that when this hook is invoked, the changes have not yet been written + * to the database, because a database transaction is still in progress. The + * transaction is not finalized until the delete operation is entirely + * completed and node_delete_multiple() goes out of scope. You should not rely + * on data in the database at this time as it is not updated yet. You should + * also note that any write/update database queries executed from this hook are + * also not committed immediately. Check node_delete_multiple() and + * db_transaction() for more info. * * @param $node * The node that is being deleted. @@ -1051,8 +1069,11 @@ function hook_delete($node) { /** * Act on a node object about to be shown on the add/edit form. * - * This hook is invoked only on the module that defines the node's content type - * (use hook_node_prepare() to act on all node preparations). + * This is a node-type-specific hook, which is invoked only for the node type + * being affected. See + * @link node_api_hooks Node API hooks @endlink for more information. + * + * Use hook_node_prepare() to respond to node preparation of all node types. * * This hook is invoked from node_object_prepare() before the general * hook_node_prepare() is invoked. @@ -1063,26 +1084,21 @@ function hook_delete($node) { * @ingroup node_api_hooks */ function hook_prepare($node) { - if ($file = file_check_upload($field_name)) { - $file = file_save_upload($field_name, _image_filename($file->filename, NULL, TRUE)); - if ($file) { - if (!image_get_info($file->uri)) { - form_set_error($field_name, t('Uploaded file is not a valid image')); - return; - } - } - else { - return; - } - $node->images['_original'] = $file->uri; - _image_build_derivatives($node, TRUE); - $node->new_file = TRUE; + if (!isset($node->mymodule_value)) { + $node->mymodule_value = 'foo'; } } /** * Display a node editing form. * + * This is a node-type-specific hook, which is invoked only for the node type + * being affected. See + * @link node_api_hooks Node API hooks @endlink for more information. + * + * Use hook_form_BASE_FORM_ID_alter(), with base form ID 'node_form', to alter + * node forms for all node types. + * * This hook, implemented by node modules, is called to retrieve the form * that is displayed to create or edit a node. This form is displayed at path * node/add/[node type] or node/[node ID]/edit. @@ -1138,8 +1154,11 @@ function hook_form($node, &$form_state) { /** * Respond to creation of a new node. * - * This hook is invoked only on the module that defines the node's content type - * (use hook_node_insert() to act on all node insertions). + * This is a node-type-specific hook, which is invoked only for the node type + * being affected. See + * @link node_api_hooks Node API hooks @endlink for more information. + * + * Use hook_node_insert() to respond to node insertion of all node types. * * This hook is invoked from node_save() after the node is inserted into the * node table in the database, before field_attach_insert() is called, and @@ -1162,8 +1181,11 @@ function hook_insert($node) { /** * Act on nodes being loaded from the database. * - * This hook is invoked only on the module that defines the node's content type - * (use hook_node_load() to respond to all node loads). + * This is a node-type-specific hook, which is invoked only for the node type + * being affected. See + * @link node_api_hooks Node API hooks @endlink for more information. + * + * Use hook_node_load() to respond to node load of all node types. * * This hook is invoked during node loading, which is handled by entity_load(), * via classes NodeController and DrupalDefaultEntityController. After the node @@ -1196,8 +1218,11 @@ function hook_load($nodes) { /** * Respond to updates to a node. * - * This hook is invoked only on the module that defines the node's content type - * (use hook_node_update() to act on all node updates). + * This is a node-type-specific hook, which is invoked only for the node type + * being affected. See + * @link node_api_hooks Node API hooks @endlink for more information. + * + * Use hook_node_update() to respond to node update of all node types. * * This hook is invoked from node_save() after the node is updated in the * node table in the database, before field_attach_update() is called, and @@ -1218,8 +1243,11 @@ function hook_update($node) { /** * Perform node validation before a node is created or updated. * - * This hook is invoked only on the module that defines the node's content type - * (use hook_node_validate() to act on all node validations). + * This is a node-type-specific hook, which is invoked only for the node type + * being affected. See + * @link node_api_hooks Node API hooks @endlink for more information. + * + * Use hook_node_validate() to respond to node validation of all node types. * * This hook is invoked from node_validate(), after a user has finished * editing the node and is previewing or submitting it. It is invoked at the end @@ -1252,8 +1280,11 @@ function hook_validate($node, $form, &$form_state) { /** * Display a node. * - * This hook is invoked only on the module that defines the node's content type - * (use hook_node_view() to act on all node views). + * This is a node-type-specific hook, which is invoked only for the node type + * being affected. See + * @link node_api_hooks Node API hooks @endlink for more information. + * + * Use hook_node_view() to respond to node view of all node types. * * This hook is invoked during node viewing after the node is fully loaded, so * that the node type module can define a custom method for display, or add to @@ -1263,6 +1294,10 @@ function hook_validate($node, $form, &$form_state) { * The node to be displayed, as returned by node_load(). * @param $view_mode * View mode, e.g. 'full', 'teaser', ... + * @param $langcode + * (optional) A language code to use for rendering. Defaults to the global + * content language of the current request. + * * @return * The passed $node parameter should be modified as necessary and returned so * it can be properly presented. Nodes are prepared for display by assembling @@ -1276,7 +1311,7 @@ function hook_validate($node, $form, &$form_state) { * * @ingroup node_api_hooks */ -function hook_view($node, $view_mode) { +function hook_view($node, $view_mode, $langcode = NULL) { if ($view_mode == 'full' && node_is_page($node)) { $breadcrumb = array(); $breadcrumb[] = l(t('Home'), NULL); diff --git a/site/modules/node/node.info b/site/modules/node/node.info index fb92c29..778e11b 100644 --- a/site/modules/node/node.info +++ b/site/modules/node/node.info @@ -9,8 +9,7 @@ required = TRUE configure = admin/structure/types stylesheets[all][] = node.css -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/node/node.install b/site/modules/node/node.install index 43bfd53..3c4e7c2 100644 --- a/site/modules/node/node.install +++ b/site/modules/node/node.install @@ -114,6 +114,7 @@ function node_schema() { 'uid' => array('uid'), 'tnid' => array('tnid'), 'translate' => array('translate'), + 'language' => array('language'), ), 'unique keys' => array( 'vid' => array('vid'), @@ -409,6 +410,7 @@ function node_schema() { 'nid' => array( 'description' => 'The {node}.nid that was read.', 'type' => 'int', + 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, ), @@ -925,6 +927,40 @@ function node_update_7013() { db_add_unique_key('node', 'vid', array('vid')); } +/** + * Add an index on {node}.language. + */ +function node_update_7014() { + db_add_index('node', 'language', array('language')); +} + +/** + * Enable node types that may have been erroneously disabled in Drupal 7.36. + */ +function node_update_7015() { + db_update('node_type') + ->fields(array('disabled' => 0)) + ->condition('base', 'node_content') + ->execute(); +} + +/** + * Change {history}.nid to an unsigned int in order to match {node}.nid. + */ +function node_update_7016() { + db_drop_primary_key('history'); + db_drop_index('history', 'nid'); + db_change_field('history', 'nid', 'nid', array( + 'description' => 'The {node}.nid that was read.', + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + )); + db_add_primary_key('history', array('uid', 'nid')); + db_add_index('history', 'nid', array('nid')); +} + /** * @} End of "addtogroup updates-7.x-extra". */ diff --git a/site/modules/node/node.module b/site/modules/node/node.module index 2680762..1d88834 100644 --- a/site/modules/node/node.module +++ b/site/modules/node/node.module @@ -210,7 +210,7 @@ function node_entity_info() { 'custom settings' => FALSE, ), 'search_result' => array( - 'label' => t('Search result'), + 'label' => t('Search result highlighting input'), 'custom settings' => FALSE, ), ); @@ -506,7 +506,8 @@ function node_type_load($name) { * - custom: TRUE or FALSE indicating whether this type is defined by a module * (FALSE) or by a user (TRUE) via Add Content Type. * - modified: TRUE or FALSE indicating whether this type has been modified by - * an administrator. Currently not used in any way. + * an administrator. When modifying an existing node type, set to TRUE, or + * the change will be ignored on node_types_rebuild(). * - locked: TRUE or FALSE indicating whether the administrator can change the * machine name of this type. * - disabled: TRUE or FALSE indicating whether this type has been disabled. @@ -1179,10 +1180,8 @@ function node_save($node) { module_invoke_all('node_' . $op, $node); module_invoke_all('entity_' . $op, $node, 'node'); - // Update the node access table for this node. There's no need to delete - // existing records if the node is new. - $delete = $op == 'update'; - node_access_acquire_grants($node, $delete); + // Update the node access table for this node. + node_access_acquire_grants($node); // Clear internal properties. unset($node->is_new); @@ -1399,12 +1398,7 @@ function node_build_content($node, $view_mode = 'full', $langcode = NULL) { $node->content = array(); // Allow modules to change the view mode. - $context = array( - 'entity_type' => 'node', - 'entity' => $node, - 'langcode' => $langcode, - ); - drupal_alter('entity_view_mode', $view_mode, $context); + $view_mode = key(entity_view_mode_prepare('node', array($node->nid => $node), $view_mode, $langcode)); // The 'view' hook can be implemented to overwrite the default function // to display nodes. @@ -1587,9 +1581,7 @@ function node_permission() { ), 'access content overview' => array( 'title' => t('Access the content overview page'), - 'description' => user_access('access content overview') - ? t('Get an overview of all content.', array('@url' => url('admin/content'))) - : t('Get an overview of all content.'), + 'description' => t('Get an overview of all content.', array('@url' => url('admin/content'))), ), 'access content' => array( 'title' => t('View published content'), @@ -1617,7 +1609,7 @@ function node_permission() { } /** - * Gathers the rankings from the the hook_ranking() implementations. + * Gathers the rankings from the hook_ranking() implementations. * * @param $query * A query object that has been extended with the Search DB Extender. @@ -1685,7 +1677,7 @@ function node_search_admin() { ); $form['content_ranking']['#theme'] = 'node_search_admin'; $form['content_ranking']['info'] = array( - '#value' => '' . t('The following numbers control which properties the content search should favor when ordering the results. Higher numbers mean more influence, zero means the property is ignored. Changing these numbers does not require the search index to be rebuilt. Changes take effect immediately.') . '' + '#markup' => '

                          ' . t('Influence is a numeric multiplier used in ordering search results. A higher number means the corresponding factor has more influence on search results; zero means the factor is ignored. Changing these numbers does not require the search index to be rebuilt. Changes take effect immediately.') . '

                          ' ); // Note: reversed to reflect that higher number = higher ranking. @@ -1872,7 +1864,7 @@ function theme_node_search_admin($variables) { $output = drupal_render($form['info']); - $header = array(t('Factor'), t('Weight')); + $header = array(t('Factor'), t('Influence')); foreach (element_children($form['factors']) as $key) { $row = array(); $row[] = $form['factors'][$key]['#title']; @@ -2224,8 +2216,8 @@ function node_last_changed($nid) { /** * Returns a list of all the existing revision numbers. * - * @param Drupal\node\Node $node - * The node entity. + * @param $node + * The node object. * * @return * An associative array keyed by node revision number. @@ -2606,9 +2598,10 @@ function node_feed($nids = FALSE, $channel = array()) { $node->link = url("node/$node->nid", array('absolute' => TRUE)); $node->rss_namespaces = array(); + $account = user_load($node->uid); $node->rss_elements = array( array('key' => 'pubDate', 'value' => gmdate('r', $node->created)), - array('key' => 'dc:creator', 'value' => $node->name), + array('key' => 'dc:creator', 'value' => format_username($account)), array('key' => 'guid', 'value' => $node->nid . ' at ' . $base_url, 'attributes' => array('isPermaLink' => 'false')) ); @@ -2666,15 +2659,26 @@ function node_feed($nids = FALSE, $channel = array()) { * An array in the format expected by drupal_render(). */ function node_view_multiple($nodes, $view_mode = 'teaser', $weight = 0, $langcode = NULL) { - field_attach_prepare_view('node', $nodes, $view_mode, $langcode); - entity_prepare_view('node', $nodes, $langcode); $build = array(); + $entities_by_view_mode = entity_view_mode_prepare('node', $nodes, $view_mode, $langcode); + foreach ($entities_by_view_mode as $entity_view_mode => $entities) { + field_attach_prepare_view('node', $entities, $entity_view_mode, $langcode); + entity_prepare_view('node', $entities, $langcode); + + foreach ($entities as $entity) { + $build['nodes'][$entity->nid] = node_view($entity, $entity_view_mode, $langcode); + } + } + foreach ($nodes as $node) { - $build['nodes'][$node->nid] = node_view($node, $view_mode, $langcode); $build['nodes'][$node->nid]['#weight'] = $weight; $weight++; } + // Sort here, to preserve the input order of the entities that were passed to + // this function. + uasort($build['nodes'], 'element_sort'); $build['nodes']['#sorted'] = TRUE; + return $build; } @@ -2949,7 +2953,10 @@ function node_search_validate($form, &$form_state) { * system. When adding a node listing to your module, be sure to use a dynamic * query created by db_select() and add a tag of "node_access". This will allow * modules dealing with node access to ensure only nodes to which the user has - * access are retrieved, through the use of hook_query_TAG_alter(). + * access are retrieved, through the use of hook_query_TAG_alter(). Tagging a + * query with "node_access" does not check the published/unpublished status of + * nodes, so the base query is responsible for ensuring that unpublished nodes + * are not displayed to inappropriate users. * * Note: Even a single module returning NODE_ACCESS_DENY from hook_node_access() * will block access to the node. Therefore, implementers should take care to @@ -3292,6 +3299,17 @@ function node_query_entity_field_access_alter(QueryAlterableInterface $query) { /** * Helper for node access functions. * + * Queries tagged with 'node_access' that are not against the {node} table + * should add the base table as metadata. For example: + * @code + * $query + * ->addTag('node_access') + * ->addMetaData('base_table', 'taxonomy_index'); + * @endcode + * If the query is not against the {node} table, an attempt is made to guess + * the table, but is not recommended to rely on this as it is deprecated and not + * allowed in Drupal 8. It is always safer to provide the table. + * * @param $query * The query to add conditions to. * @param $type @@ -3620,7 +3638,8 @@ function node_access_rebuild($batch_mode = FALSE) { // Try to allocate enough time to rebuild node grants drupal_set_time_limit(240); - $nids = db_query("SELECT nid FROM {node}")->fetchCol(); + // Rebuild newest nodes first so that recent content becomes available quickly. + $nids = db_query("SELECT nid FROM {node} ORDER BY nid DESC")->fetchCol(); foreach ($nids as $nid) { $node = node_load($nid, NULL, TRUE); // To preserve database integrity, only acquire grants if the node @@ -3653,6 +3672,8 @@ function node_access_rebuild($batch_mode = FALSE) { } /** + * Implements callback_batch_operation(). + * * Performs batch operation for node_access_rebuild(). * * This is a multistep operation: we go through all nodes by packs of 20. The @@ -3667,7 +3688,7 @@ function _node_access_rebuild_batch_operation(&$context) { // Initiate multistep processing. $context['sandbox']['progress'] = 0; $context['sandbox']['current_node'] = 0; - $context['sandbox']['max'] = db_query('SELECT COUNT(DISTINCT nid) FROM {node}')->fetchField(); + $context['sandbox']['max'] = db_query('SELECT COUNT(nid) FROM {node}')->fetchField(); } // Process the next 20 nodes. @@ -3691,6 +3712,8 @@ function _node_access_rebuild_batch_operation(&$context) { } /** + * Implements callback_batch_finished(). + * * Performs post-processing for node_access_rebuild(). * * @param bool $success diff --git a/site/modules/node/node.pages.inc b/site/modules/node/node.pages.inc index 75ed0dd..72b0ea7 100644 --- a/site/modules/node/node.pages.inc +++ b/site/modules/node/node.pages.inc @@ -371,35 +371,37 @@ function node_form_build_preview($form, &$form_state) { * @see node_form_build_preview() */ function node_preview($node) { - if (node_access('create', $node) || node_access('update', $node)) { - _field_invoke_multiple('load', 'node', array($node->nid => $node)); + // Clone the node before previewing it to prevent the node itself from being + // modified. + $cloned_node = clone $node; + if (node_access('create', $cloned_node) || node_access('update', $cloned_node)) { + _field_invoke_multiple('load', 'node', array($cloned_node->nid => $cloned_node)); // Load the user's name when needed. - if (isset($node->name)) { + if (isset($cloned_node->name)) { // The use of isset() is mandatory in the context of user IDs, because // user ID 0 denotes the anonymous user. - if ($user = user_load_by_name($node->name)) { - $node->uid = $user->uid; - $node->picture = $user->picture; + if ($user = user_load_by_name($cloned_node->name)) { + $cloned_node->uid = $user->uid; + $cloned_node->picture = $user->picture; } else { - $node->uid = 0; // anonymous user + $cloned_node->uid = 0; // anonymous user } } - elseif ($node->uid) { - $user = user_load($node->uid); - $node->name = $user->name; - $node->picture = $user->picture; + elseif ($cloned_node->uid) { + $user = user_load($cloned_node->uid); + $cloned_node->name = $user->name; + $cloned_node->picture = $user->picture; } - $node->changed = REQUEST_TIME; - $nodes = array($node->nid => $node); - field_attach_prepare_view('node', $nodes, 'full'); + $cloned_node->changed = REQUEST_TIME; + $nodes = array($cloned_node->nid => $cloned_node); // Display a preview of the node. if (!form_get_errors()) { - $node->in_preview = TRUE; - $output = theme('node_preview', array('node' => $node)); - unset($node->in_preview); + $cloned_node->in_preview = TRUE; + $output = theme('node_preview', array('node' => $cloned_node)); + unset($cloned_node->in_preview); } drupal_set_title(t('Preview'), PASS_THROUGH); @@ -542,6 +544,7 @@ function node_delete_confirm_submit($form, &$form_state) { if ($form_state['values']['confirm']) { $node = node_load($form_state['values']['nid']); node_delete($form_state['values']['nid']); + cache_clear_all(); watchdog('content', '@type: deleted %title.', array('@type' => $node->type, '%title' => $node->title)); drupal_set_message(t('@type %title has been deleted.', array('@type' => node_type_get_name($node), '%title' => $node->title))); } diff --git a/site/modules/node/node.test b/site/modules/node/node.test index b1d78fa..e8eb459 100644 --- a/site/modules/node/node.test +++ b/site/modules/node/node.test @@ -457,10 +457,70 @@ class PagePreviewTestCase extends DrupalWebTestCase { } function setUp() { - parent::setUp(); + parent::setUp(array('taxonomy', 'node')); $web_user = $this->drupalCreateUser(array('edit own page content', 'create page content')); $this->drupalLogin($web_user); + + // Add a vocabulary so we can test different view modes. + $vocabulary = (object) array( + 'name' => $this->randomName(), + 'description' => $this->randomName(), + 'machine_name' => drupal_strtolower($this->randomName()), + 'help' => '', + 'nodes' => array('page' => 'page'), + ); + taxonomy_vocabulary_save($vocabulary); + + $this->vocabulary = $vocabulary; + + // Add a term to the vocabulary. + $term = (object) array( + 'name' => $this->randomName(), + 'description' => $this->randomName(), + // Use the first available text format. + 'format' => db_query_range('SELECT format FROM {filter_format}', 0, 1)->fetchField(), + 'vid' => $this->vocabulary->vid, + 'vocabulary_machine_name' => $vocabulary->machine_name, + ); + taxonomy_term_save($term); + + $this->term = $term; + + // Set up a field and instance. + $this->field_name = drupal_strtolower($this->randomName()); + $this->field = array( + 'field_name' => $this->field_name, + 'type' => 'taxonomy_term_reference', + 'settings' => array( + 'allowed_values' => array( + array( + 'vocabulary' => $this->vocabulary->machine_name, + 'parent' => '0', + ), + ), + ) + ); + + field_create_field($this->field); + $this->instance = array( + 'field_name' => $this->field_name, + 'entity_type' => 'node', + 'bundle' => 'page', + 'widget' => array( + 'type' => 'options_select', + ), + // Hide on full display but render on teaser. + 'display' => array( + 'default' => array( + 'type' => 'hidden', + ), + 'teaser' => array( + 'type' => 'taxonomy_term_reference_link', + ), + ), + ); + field_create_instance($this->instance); } /** @@ -470,21 +530,26 @@ class PagePreviewTestCase extends DrupalWebTestCase { $langcode = LANGUAGE_NONE; $title_key = "title"; $body_key = "body[$langcode][0][value]"; + $term_key = "{$this->field_name}[$langcode]"; // Fill in node creation form and preview node. $edit = array(); $edit[$title_key] = $this->randomName(8); $edit[$body_key] = $this->randomName(16); + $edit[$term_key] = $this->term->tid; $this->drupalPost('node/add/page', $edit, t('Preview')); - // Check that the preview is displaying the title and body. + // Check that the preview is displaying the title, body, and term. $this->assertTitle(t('Preview | Drupal'), 'Basic page title is preview.'); $this->assertText($edit[$title_key], 'Title displayed.'); $this->assertText($edit[$body_key], 'Body displayed.'); + $this->assertText($this->term->name, 'Term displayed.'); - // Check that the title and body fields are displayed with the correct values. + // Check that the title, body, and term fields are displayed with the + // correct values. $this->assertFieldByName($title_key, $edit[$title_key], 'Title field displayed.'); $this->assertFieldByName($body_key, $edit[$body_key], 'Body field displayed.'); + $this->assertFieldByName($term_key, $edit[$term_key], 'Term field displayed.'); } /** @@ -494,6 +559,7 @@ class PagePreviewTestCase extends DrupalWebTestCase { $langcode = LANGUAGE_NONE; $title_key = "title"; $body_key = "body[$langcode][0][value]"; + $term_key = "{$this->field_name}[$langcode]"; // Force revision on "Basic page" content. variable_set('node_options_page', array('status', 'revision')); @@ -501,17 +567,21 @@ class PagePreviewTestCase extends DrupalWebTestCase { $edit = array(); $edit[$title_key] = $this->randomName(8); $edit[$body_key] = $this->randomName(16); + $edit[$term_key] = $this->term->tid; $edit['log'] = $this->randomName(32); $this->drupalPost('node/add/page', $edit, t('Preview')); - // Check that the preview is displaying the title and body. + // Check that the preview is displaying the title, body, and term. $this->assertTitle(t('Preview | Drupal'), 'Basic page title is preview.'); $this->assertText($edit[$title_key], 'Title displayed.'); $this->assertText($edit[$body_key], 'Body displayed.'); + $this->assertText($this->term->name, 'Term displayed.'); - // Check that the title and body fields are displayed with the correct values. + // Check that the title, body, and term fields are displayed with the + // correct values. $this->assertFieldByName($title_key, $edit[$title_key], 'Title field displayed.'); $this->assertFieldByName($body_key, $edit[$body_key], 'Body field displayed.'); + $this->assertFieldByName($term_key, $edit[$term_key], 'Term field displayed.'); // Check that the log field has the correct value. $this->assertFieldByName('log', $edit['log'], 'Log field displayed.'); @@ -571,6 +641,8 @@ class NodeCreationTestCase extends DrupalWebTestCase { ); try { + // An exception is generated by node_test_exception_node_insert() if the + // title is 'testing_transaction_exception'. node_save((object) $edit); $this->fail(t('Expected exception has not been thrown.')); } @@ -1363,6 +1435,22 @@ class NodeSaveTestCase extends DrupalWebTestCase { $node = node_load($node->nid); $this->assertEqual($node->title, 'updated_presave', 'Static cache has been cleared.'); } + + /** + * Tests saving a node on node insert. + * + * This test ensures that a node has been fully saved when hook_node_insert() + * is invoked, so that the node can be saved again in a hook implementation + * without errors. + * + * @see node_test_node_insert() + */ + function testNodeSaveOnInsert() { + // node_test_node_insert() triggers a save on insert if the title equals + // 'new'. + $node = $this->drupalCreateNode(array('title' => 'new')); + $this->assertEqual($node->title, 'Node ' . $node->nid, 'Node saved on node insert.'); + } } /** @@ -1430,7 +1518,7 @@ class NodeTypeTestCase extends DrupalWebTestCase { * Tests editing a node type using the UI. */ function testNodeTypeEditing() { - $web_user = $this->drupalCreateUser(array('bypass node access', 'administer content types')); + $web_user = $this->drupalCreateUser(array('bypass node access', 'administer content types', 'administer fields')); $this->drupalLogin($web_user); $instance = field_info_instance('node', 'body', 'page'); @@ -2426,6 +2514,35 @@ class NodeTokenReplaceTestCase extends DrupalWebTestCase { $output = token_replace($input, array('node' => $node), array('language' => $language, 'sanitize' => FALSE)); $this->assertEqual($output, $expected, format_string('Unsanitized node token %token replaced.', array('%token' => $input))); } + + // Repeat for a node without a summary. + $settings['body'] = array(LANGUAGE_NONE => array(array('value' => $this->randomName(32), 'summary' => ''))); + $node = $this->drupalCreateNode($settings); + + // Load node (without summary) so that the body and summary fields are + // structured properly. + $node = node_load($node->nid); + $instance = field_info_instance('node', 'body', $node->type); + + // Generate and test sanitized token - use full body as expected value. + $tests = array(); + $tests['[node:summary]'] = _text_sanitize($instance, $langcode, $node->body[$langcode][0], 'value'); + + // Test to make sure that we generated something for each token. + $this->assertFalse(in_array(0, array_map('strlen', $tests)), 'No empty tokens generated for node without a summary.'); + + foreach ($tests as $input => $expected) { + $output = token_replace($input, array('node' => $node), array('language' => $language)); + $this->assertEqual($output, $expected, format_string('Sanitized node token %token replaced for node without a summary.', array('%token' => $input))); + } + + // Generate and test unsanitized tokens. + $tests['[node:summary]'] = $node->body[$langcode][0]['value']; + + foreach ($tests as $input => $expected) { + $output = token_replace($input, array('node' => $node), array('language' => $language, 'sanitize' => FALSE)); + $this->assertEqual($output, $expected, format_string('Unsanitized node token %token replaced for node without a summary.', array('%token' => $input))); + } } } @@ -2651,8 +2768,8 @@ class NodeAccessFieldTestCase extends NodeWebTestCase { node_access_rebuild(); // Create some users. - $this->admin_user = $this->drupalCreateUser(array('access content', 'bypass node access')); - $this->content_admin_user = $this->drupalCreateUser(array('access content', 'administer content types')); + $this->admin_user = $this->drupalCreateUser(array('access content', 'bypass node access', 'administer fields')); + $this->content_admin_user = $this->drupalCreateUser(array('access content', 'administer content types', 'administer fields')); // Add a custom field to the page content type. $this->field_name = drupal_strtolower($this->randomName() . '_field_name'); @@ -2735,8 +2852,8 @@ class NodeEntityViewModeAlterTest extends NodeWebTestCase { $edit = array(); $langcode = LANGUAGE_NONE; $edit["title"] = $this->randomName(8); - $edit["body[$langcode][0][value]"] = t('Data that should appear only in the body for the node.'); - $edit["body[$langcode][0][summary]"] = t('Extra data that should appear only in the teaser for the node.'); + $edit["body[$langcode][0][value]"] = 'Data that should appear only in the body for the node.'; + $edit["body[$langcode][0][summary]"] = 'Extra data that should appear only in the teaser for the node.'; $this->drupalPost('node/add/page', $edit, t('Save')); $node = $this->drupalGetNodeByTitle($edit["title"]); @@ -2754,4 +2871,151 @@ class NodeEntityViewModeAlterTest extends NodeWebTestCase { $build = node_view($node); $this->assertEqual($build['#view_mode'], 'teaser', 'The view mode has correctly been set to teaser.'); } + + /** + * Tests fields that were previously hidden when the view mode is changed. + */ + function testNodeViewModeChangeHiddenField() { + // Hide the tags field on the default display + $instance = field_info_instance('node', 'field_tags', 'article'); + $instance['display']['default']['type'] = 'hidden'; + field_update_instance($instance); + + $web_user = $this->drupalCreateUser(array('create article content', 'edit own article content')); + $this->drupalLogin($web_user); + + // Create a node. + $edit = array(); + $langcode = LANGUAGE_NONE; + $edit["title"] = $this->randomName(8); + $edit["body[$langcode][0][value]"] = 'Data that should appear only in the body for the node.'; + $edit["body[$langcode][0][summary]"] = 'Extra data that should appear only in the teaser for the node.'; + $edit["field_tags[$langcode]"] = 'Extra tag'; + $this->drupalPost('node/add/article', $edit, t('Save')); + + $node = $this->drupalGetNodeByTitle($edit["title"]); + + // Set the flag to alter the view mode and view the node. + variable_set('node_test_change_view_mode', 'teaser'); + $this->drupalGet('node/' . $node->nid); + + // Check that teaser mode is viewed. + $this->assertText('Extra data that should appear only in the teaser for the node.', 'Teaser text present'); + // Make sure body text is not present. + $this->assertNoText('Data that should appear only in the body for the node.', 'Body text not present'); + // Make sure tags are present. + $this->assertText('Extra tag', 'Taxonomy term present'); + + // Test that the correct build mode has been set. + $build = node_view($node); + $this->assertEqual($build['#view_mode'], 'teaser', 'The view mode has correctly been set to teaser.'); + } +} + +/** + * Tests the cache invalidation of node operations. + */ +class NodePageCacheTest extends NodeWebTestCase { + + /** + * An admin user with administrative permissions for nodes. + */ + protected $admin_user; + + public static function getInfo() { + return array( + 'name' => 'Node page cache test', + 'description' => 'Test cache invalidation of node operations.', + 'group' => 'Node', + ); + } + + function setUp() { + parent::setUp(); + + variable_set('cache', 1); + variable_set('page_cache_maximum_age', 300); + + $this->admin_user = $this->drupalCreateUser(array( + 'bypass node access', + 'access content overview', + 'administer nodes', + )); + } + + /** + * Tests deleting nodes clears page cache. + */ + public function testNodeDelete() { + $node_path = 'node/' . $this->drupalCreateNode()->nid; + + // Populate page cache. + $this->drupalGet($node_path); + + // Login and delete the node. + $this->drupalLogin($this->admin_user); + $this->drupalPost($node_path . '/delete', array(), t('Delete')); + + // Logout and check the node is not available. + $this->drupalLogout(); + $this->drupalGet($node_path); + $this->assertResponse(404); + + // Create two new nodes. + $nodes[0] = $this->drupalCreateNode(); + $nodes[1] = $this->drupalCreateNode(); + $node_path = 'node/' . $nodes[0]->nid; + + // Populate page cache. + $this->drupalGet($node_path); + + // Login and delete the nodes. + $this->drupalLogin($this->admin_user); + $this->drupalGet('admin/content'); + $edit = array( + 'operation' => 'delete', + 'nodes[' . $nodes[0]->nid . ']' => TRUE, + 'nodes[' . $nodes[1]->nid . ']' => TRUE, + ); + $this->drupalPost(NULL, $edit, t('Update')); + $this->drupalPost(NULL, array(), t('Delete')); + + // Logout and check the node is not available. + $this->drupalLogout(); + $this->drupalGet($node_path); + $this->assertResponse(404); + } +} + +/** + * Tests that multi-byte UTF-8 characters are stored and retrieved correctly. + */ +class NodeMultiByteUtf8Test extends NodeWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Multi-byte UTF-8', + 'description' => 'Test that multi-byte UTF-8 characters are stored and retrieved correctly.', + 'group' => 'Node', + ); + } + + /** + * Tests that multi-byte UTF-8 characters are stored and retrieved correctly. + */ + public function testMultiByteUtf8() { + $connection = Database::getConnection(); + // On MySQL, this test will only run if 'charset' is set to 'utf8mb4' in + // settings.php. + if (!($connection->utf8mb4IsSupported() && $connection->utf8mb4IsActive())) { + return; + } + $title = '🐙'; + $this->assertTrue(drupal_strlen($title, 'utf-8') < strlen($title), 'Title has multi-byte characters.'); + $node = $this->drupalCreateNode(array('title' => $title)); + $this->drupalGet('node/' . $node->nid); + $result = $this->xpath('//h1[@id="page-title"]'); + $this->assertEqual(trim((string) $result[0]), $title, 'The passed title was returned.'); + } + } diff --git a/site/modules/node/node.tokens.inc b/site/modules/node/node.tokens.inc index e43db5e..e63c751 100644 --- a/site/modules/node/node.tokens.inc +++ b/site/modules/node/node.tokens.inc @@ -136,10 +136,29 @@ function node_tokens($type, $tokens, array $data = array(), array $options = arr case 'body': case 'summary': if ($items = field_get_items('node', $node, 'body', $language_code)) { - $column = ($name == 'body') ? 'value' : 'summary'; $instance = field_info_instance('node', 'body', $node->type); $field_langcode = field_language('node', $node, 'body', $language_code); - $replacements[$original] = $sanitize ? _text_sanitize($instance, $field_langcode, $items[0], $column) : $items[0][$column]; + // If the summary was requested and is not empty, use it. + if ($name == 'summary' && !empty($items[0]['summary'])) { + $output = $sanitize ? _text_sanitize($instance, $field_langcode, $items[0], 'summary') : $items[0]['summary']; + } + // Attempt to provide a suitable version of the 'body' field. + else { + $output = $sanitize ? _text_sanitize($instance, $field_langcode, $items[0], 'value') : $items[0]['value']; + // A summary was requested. + if ($name == 'summary') { + if (isset($instance['display']['teaser']['settings']['trim_length'])) { + $trim_length = $instance['display']['teaser']['settings']['trim_length']; + } + else { + // Use default value. + $trim_length = NULL; + } + // Generate an optionally trimmed summary of the body field. + $output = text_summary($output, $instance['settings']['text_processing'] ? $items[0]['format'] : NULL, $trim_length); + } + } + $replacements[$original] = $output; } break; diff --git a/site/modules/node/tests/node_access_test.info b/site/modules/node/tests/node_access_test.info index 371cb9f..4f6966c 100644 --- a/site/modules/node/tests/node_access_test.info +++ b/site/modules/node/tests/node_access_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/node/tests/node_access_test.module b/site/modules/node/tests/node_access_test.module index ec35c41..7932c55 100644 --- a/site/modules/node/tests/node_access_test.module +++ b/site/modules/node/tests/node_access_test.module @@ -211,7 +211,7 @@ function node_access_test_node_insert($node) { } /** - * Implements hook_nodeapi_update(). + * Implements hook_node_update(). */ function node_access_test_node_update($node) { _node_access_test_node_write($node); diff --git a/site/modules/node/tests/node_test.info b/site/modules/node/tests/node_test.info index 043e28a..a36f6c7 100644 --- a/site/modules/node/tests/node_test.info +++ b/site/modules/node/tests/node_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/node/tests/node_test.module b/site/modules/node/tests/node_test.module index fb66785..edc175f 100644 --- a/site/modules/node/tests/node_test.module +++ b/site/modules/node/tests/node_test.module @@ -161,3 +161,21 @@ function node_test_entity_view_mode_alter(&$view_mode, $context) { $view_mode = $change_view_mode; } } + +/** + * Implements hook_node_insert(). + * + * This tests saving a node on node insert. + * + * @see NodeSaveTest::testNodeSaveOnInsert() + */ +function node_test_node_insert($node) { + // Set the node title to the node ID and save. + if ($node->title == 'new') { + $node->title = 'Node '. $node->nid; + // Remove the is_new flag, so that the node is updated and not inserted + // again. + unset($node->is_new); + node_save($node); + } +} diff --git a/site/modules/node/tests/node_test_exception.info b/site/modules/node/tests/node_test_exception.info index 3d789ff..a0aac90 100644 --- a/site/modules/node/tests/node_test_exception.info +++ b/site/modules/node/tests/node_test_exception.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/openid/openid.inc b/site/modules/openid/openid.inc index 74a08d5..a1da1d0 100644 --- a/site/modules/openid/openid.inc +++ b/site/modules/openid/openid.inc @@ -158,6 +158,11 @@ function _openid_xrds_parse($raw_xml) { return array(); } + // Also stop parsing if there is an unreasonably large number of tags. + if ($dom->getElementsByTagName('*')->length > variable_get('openid_xrds_maximum_tag_count', 30000)) { + return array(); + } + // Parse the DOM document for the information we need. if ($xml = simplexml_import_dom($dom)) { foreach ($xml->children(OPENID_NS_XRD)->XRD as $xrd) { @@ -380,6 +385,9 @@ function _openid_parse_message($message) { /** * Return a nonce value - formatted per OpenID spec. + * + * NOTE: This nonce is not cryptographically secure and only suitable for use + * by the test framework. */ function _openid_nonce() { // YYYY-MM-DDThh:mm:ssZ, plus some optional extra unique characters. @@ -549,7 +557,7 @@ function _openid_dh_rand($stop) { } do { - $bytes = "\x00" . _openid_get_bytes($nbytes); + $bytes = "\x00" . drupal_random_bytes($nbytes); $n = _openid_dh_binary_to_long($bytes); // Keep looping if this value is in the low duplicated range. } while (_openid_math_cmp($n, $duplicate) < 0); @@ -558,23 +566,7 @@ function _openid_dh_rand($stop) { } function _openid_get_bytes($num_bytes) { - $f = &drupal_static(__FUNCTION__); - $bytes = ''; - if (!isset($f)) { - $f = @fopen(OPENID_RAND_SOURCE, "r"); - } - if (!$f) { - // pseudorandom used - $bytes = ''; - for ($i = 0; $i < $num_bytes; $i += 4) { - $bytes .= pack('L', mt_rand()); - } - $bytes = substr($bytes, 0, $num_bytes); - } - else { - $bytes = fread($f, $num_bytes); - } - return $bytes; + return drupal_random_bytes($num_bytes); } function _openid_response($str = NULL) { diff --git a/site/modules/openid/openid.info b/site/modules/openid/openid.info index a193e81..85714e1 100644 --- a/site/modules/openid/openid.info +++ b/site/modules/openid/openid.info @@ -5,8 +5,7 @@ package = Core core = 7.x files[] = openid.test -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/openid/openid.install b/site/modules/openid/openid.install index 4b77b71..e382d86 100644 --- a/site/modules/openid/openid.install +++ b/site/modules/openid/openid.install @@ -15,13 +15,14 @@ function openid_schema() { 'idp_endpoint_uri' => array( 'type' => 'varchar', 'length' => 255, - 'description' => 'URI of the OpenID Provider endpoint.', + 'not null' => TRUE, + 'description' => 'Primary Key: URI of the OpenID Provider endpoint.', ), 'assoc_handle' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, - 'description' => 'Primary Key: Used to refer to this association in subsequent messages.', + 'description' => 'Used to refer to this association in subsequent messages.', ), 'assoc_type' => array( 'type' => 'varchar', @@ -51,7 +52,10 @@ function openid_schema() { 'description' => 'The lifetime, in seconds, of this association.', ), ), - 'primary key' => array('assoc_handle'), + 'primary key' => array('idp_endpoint_uri'), + 'unique keys' => array( + 'assoc_handle' => array('assoc_handle'), + ), ); $schema['openid_nonce'] = array( @@ -158,3 +162,69 @@ function openid_update_6000() { /** * @} End of "addtogroup updates-6.x-to-7.x". */ + +/** + * @addtogroup updates-7.x-extra + * @{ + */ + +/** + * Bind associations to their providers. + */ +function openid_update_7000() { + db_drop_table('openid_association'); + + $schema = array( + 'description' => 'Stores temporary shared key association information for OpenID authentication.', + 'fields' => array( + 'idp_endpoint_uri' => array( + 'type' => 'varchar', + 'length' => 255, + 'not null' => TRUE, + 'description' => 'Primary Key: URI of the OpenID Provider endpoint.', + ), + 'assoc_handle' => array( + 'type' => 'varchar', + 'length' => 255, + 'not null' => TRUE, + 'description' => 'Used to refer to this association in subsequent messages.', + ), + 'assoc_type' => array( + 'type' => 'varchar', + 'length' => 32, + 'description' => 'The signature algorithm used: one of HMAC-SHA1 or HMAC-SHA256.', + ), + 'session_type' => array( + 'type' => 'varchar', + 'length' => 32, + 'description' => 'Valid association session types: "no-encryption", "DH-SHA1", and "DH-SHA256".', + ), + 'mac_key' => array( + 'type' => 'varchar', + 'length' => 255, + 'description' => 'The MAC key (shared secret) for this association.', + ), + 'created' => array( + 'type' => 'int', + 'not null' => TRUE, + 'default' => 0, + 'description' => 'UNIX timestamp for when the association was created.', + ), + 'expires_in' => array( + 'type' => 'int', + 'not null' => TRUE, + 'default' => 0, + 'description' => 'The lifetime, in seconds, of this association.', + ), + ), + 'primary key' => array('idp_endpoint_uri'), + 'unique keys' => array( + 'assoc_handle' => array('assoc_handle'), + ), + ); + db_create_table('openid_association', $schema); +} + +/** + * @} End of "addtogroup updates-7.x-extra". + */ diff --git a/site/modules/openid/openid.module b/site/modules/openid/openid.module index 1f764e0..a52dbc3 100644 --- a/site/modules/openid/openid.module +++ b/site/modules/openid/openid.module @@ -365,14 +365,20 @@ function openid_complete($response = array()) { // to the OpenID Provider, we need to do discovery on the returned // identififer to make sure that the provider is authorized to // respond on behalf of this. - if ($response_claimed_id != $claimed_id) { + if ($response_claimed_id != $claimed_id || $response_claimed_id != $response['openid.identity']) { $discovery = openid_discovery($response['openid.claimed_id']); + $uris = array(); if ($discovery && !empty($discovery['services'])) { - $uris = array(); foreach ($discovery['services'] as $discovered_service) { - if (in_array('http://specs.openid.net/auth/2.0/server', $discovered_service['types']) || in_array('http://specs.openid.net/auth/2.0/signon', $discovered_service['types'])) { - $uris[] = $discovered_service['uri']; + if (!in_array('http://specs.openid.net/auth/2.0/server', $discovered_service['types']) && !in_array('http://specs.openid.net/auth/2.0/signon', $discovered_service['types'])) { + continue; } + // The OP-Local Identifier (if different than the Claimed + // Identifier) must be present in the XRDS document. + if ($response_claimed_id != $response['openid.identity'] && (!isset($discovered_service['identity']) || $discovered_service['identity'] != $response['openid.identity'])) { + continue; + } + $uris[] = $discovered_service['uri']; } } if (!in_array($service['uri'], $uris)) { @@ -839,7 +845,7 @@ function openid_verify_assertion($service, $response) { // direct verification: ignore the openid.assoc_handle, even if present. // See http://openid.net/specs/openid-authentication-2_0.html#rfc.section.11.4.1 if (!empty($response['openid.assoc_handle']) && empty($response['openid.invalidate_handle'])) { - $association = db_query("SELECT * FROM {openid_association} WHERE assoc_handle = :assoc_handle", array(':assoc_handle' => $response['openid.assoc_handle']))->fetchObject(); + $association = db_query("SELECT * FROM {openid_association} WHERE idp_endpoint_uri = :endpoint AND assoc_handle = :assoc_handle", array(':endpoint' => $service['uri'], ':assoc_handle' => $response['openid.assoc_handle']))->fetchObject(); } if ($association && isset($association->session_type)) { @@ -871,6 +877,7 @@ function openid_verify_assertion($service, $response) { // database to avoid reusing it again on a subsequent authentication request. // See http://openid.net/specs/openid-authentication-2_0.html#rfc.section.11.4.2.2 db_delete('openid_association') + ->condition('idp_endpoint_uri', $service['uri']) ->condition('assoc_handle', $response['invalidate_handle']) ->execute(); } diff --git a/site/modules/openid/openid.test b/site/modules/openid/openid.test index 292c531..d0708e0 100644 --- a/site/modules/openid/openid.test +++ b/site/modules/openid/openid.test @@ -94,7 +94,7 @@ class OpenIDFunctionalTestCase extends OpenIDWebTestCase { $identity = url('openid-test/yadis/xrds/dummy-user', array('absolute' => TRUE, 'fragment' => $this->randomName())); // Tell openid_test.module to respond with this identifier. If the fragment // part is present in the identifier, it should be retained. - variable_set('openid_test_response', array('openid.claimed_id' => $identity)); + variable_set('openid_test_response', array('openid.claimed_id' => $identity, 'openid.identity' => openid_normalize($identity))); $this->addIdentity(url('openid-test/yadis/xrds/server', array('absolute' => TRUE)), 2, 'http://specs.openid.net/auth/2.0/identifier_select', $identity); variable_set('openid_test_response', array()); @@ -680,11 +680,11 @@ class OpenIDTestCase extends DrupalWebTestCase { * Test _openid_dh_XXX_to_XXX() functions. */ function testConversion() { - $this->assertEqual(_openid_dh_long_to_base64('12345678901234567890123456789012345678901234567890'), 'CHJ/Y2mq+DyhUCZ0evjH8ZbOPwrS', '_openid_dh_long_to_base64() returned expected result.'); - $this->assertEqual(_openid_dh_base64_to_long('BsH/g8Nrpn2dtBSdu/sr1y8hxwyx'), '09876543210987654321098765432109876543210987654321', '_openid_dh_base64_to_long() returned expected result.'); + $this->assertIdentical(_openid_dh_long_to_base64('12345678901234567890123456789012345678901234567890'), 'CHJ/Y2mq+DyhUCZ0evjH8ZbOPwrS', '_openid_dh_long_to_base64() returned expected result.'); + $this->assertIdentical(_openid_dh_base64_to_long('BsH/g8Nrpn2dtBSdu/sr1y8hxwyx'), '9876543210987654321098765432109876543210987654321', '_openid_dh_base64_to_long() returned expected result.'); - $this->assertEqual(_openid_dh_long_to_binary('12345678901234567890123456789012345678901234567890'), "\x08r\x7fci\xaa\xf8<\xa1P&tz\xf8\xc7\xf1\x96\xce?\x0a\xd2", '_openid_dh_long_to_binary() returned expected result.'); - $this->assertEqual(_openid_dh_binary_to_long("\x06\xc1\xff\x83\xc3k\xa6}\x9d\xb4\x14\x9d\xbb\xfb+\xd7/!\xc7\x0c\xb1"), '09876543210987654321098765432109876543210987654321', '_openid_dh_binary_to_long() returned expected result.'); + $this->assertIdentical(_openid_dh_long_to_binary('12345678901234567890123456789012345678901234567890'), "\x08r\x7fci\xaa\xf8<\xa1P&tz\xf8\xc7\xf1\x96\xce?\x0a\xd2", '_openid_dh_long_to_binary() returned expected result.'); + $this->assertIdentical(_openid_dh_binary_to_long("\x06\xc1\xff\x83\xc3k\xa6}\x9d\xb4\x14\x9d\xbb\xfb+\xd7/!\xc7\x0c\xb1"), '9876543210987654321098765432109876543210987654321', '_openid_dh_binary_to_long() returned expected result.'); } /** @@ -694,13 +694,6 @@ class OpenIDTestCase extends DrupalWebTestCase { $this->assertEqual(_openid_dh_xorsecret('123456790123456790123456790', "abc123ABC\x00\xFF"), "\xa4'\x06\xbe\xf1.\x00y\xff\xc2\xc1", '_openid_dh_xorsecret() returned expected result.'); } - /** - * Test _openid_get_bytes(). - */ - function testOpenidGetBytes() { - $this->assertEqual(strlen(_openid_get_bytes(20)), 20, '_openid_get_bytes() returned expected result.'); - } - /** * Test _openid_signature(). */ diff --git a/site/modules/openid/tests/openid_test.info b/site/modules/openid/tests/openid_test.info index a55e2b9..9cdea74 100644 --- a/site/modules/openid/tests/openid_test.info +++ b/site/modules/openid/tests/openid_test.info @@ -6,8 +6,7 @@ core = 7.x dependencies[] = openid hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/openid/tests/openid_test.install b/site/modules/openid/tests/openid_test.install index 3bd4978..d30e2dc 100644 --- a/site/modules/openid/tests/openid_test.install +++ b/site/modules/openid/tests/openid_test.install @@ -13,5 +13,5 @@ function openid_test_install() { // Generate a MAC key (Message Authentication Code) used for signing messages. // The variable is base64-encoded, because variables cannot contain non-UTF-8 // data. - variable_set('openid_test_mac_key', base64_encode(_openid_get_bytes(20))); + variable_set('openid_test_mac_key', drupal_random_key(20)); } diff --git a/site/modules/openid/tests/openid_test.module b/site/modules/openid/tests/openid_test.module index bcf9f42..3d6e292 100644 --- a/site/modules/openid/tests/openid_test.module +++ b/site/modules/openid/tests/openid_test.module @@ -150,6 +150,7 @@ function openid_test_yadis_xrds() { http://specs.openid.net/auth/2.0/server ' . url('openid-test/endpoint', array('absolute' => TRUE)) . ' + ' . url('openid-test/yadis/xrds/server', array('absolute' => TRUE)) . ' '; } elseif (arg(3) == 'delegate') { diff --git a/site/modules/overlay/overlay-parent.js b/site/modules/overlay/overlay-parent.js index 7452a51..efb2637 100644 --- a/site/modules/overlay/overlay-parent.js +++ b/site/modules/overlay/overlay-parent.js @@ -350,7 +350,7 @@ Drupal.overlay.setFocusBefore = function ($element, document) { * TRUE if the URL represents an administrative link, FALSE otherwise. */ Drupal.overlay.isAdminLink = function (url) { - if (Drupal.overlay.isExternalLink(url)) { + if (!Drupal.urlIsLocal(url)) { return false; } @@ -378,6 +378,8 @@ Drupal.overlay.isAdminLink = function (url) { /** * Determine whether a link is external to the site. * + * Deprecated. Use Drupal.urlIsLocal() instead. + * * @param url * The URL to be tested. * @@ -385,8 +387,28 @@ Drupal.overlay.isAdminLink = function (url) { * TRUE if the URL is external to the site, FALSE otherwise. */ Drupal.overlay.isExternalLink = function (url) { - var re = RegExp('^((f|ht)tps?:)?//(?!' + window.location.host + ')'); - return re.test(url); + return !Drupal.urlIsLocal(url); +}; + +/** + * Constructs an internal URL (relative to this site) from the provided path. + * + * For example, if the provided path is 'admin' and the site is installed at + * http://example.com/drupal, this function will return '/drupal/admin'. + * + * @param path + * The internal path, without any leading slash. + * + * @return + * The internal URL derived from the provided path, or null if a valid + * internal path cannot be constructed (for example, if an attempt to create + * an external link is detected). + */ +Drupal.overlay.getInternalUrl = function (path) { + var url = Drupal.settings.basePath + path; + if (Drupal.urlIsLocal(url)) { + return url; + } }; /** @@ -577,7 +599,7 @@ Drupal.overlay.eventhandlerOverrideLink = function (event) { // If the link contains the overlay-restore class and the overlay-context // state is set, also update the parent window's location. var parentLocation = ($target.hasClass('overlay-restore') && typeof $.bbq.getState('overlay-context') == 'string') - ? Drupal.settings.basePath + $.bbq.getState('overlay-context') + ? this.getInternalUrl($.bbq.getState('overlay-context')) : null; href = this.fragmentizeLink($target.get(0), parentLocation); // Only override default behavior when left-clicking and user is not @@ -657,11 +679,15 @@ Drupal.overlay.eventhandlerOperateByURLFragment = function (event) { } // Get the overlay URL from the current URL fragment. + var internalUrl = null; var state = $.bbq.getState('overlay'); if (state) { + internalUrl = this.getInternalUrl(state); + } + if (internalUrl) { // Append render variable, so the server side can choose the right // rendering and add child frame code to the page if needed. - var url = $.param.querystring(Drupal.settings.basePath + state, { render: 'overlay' }); + var url = $.param.querystring(internalUrl, { render: 'overlay' }); this.open(url); this.resetActiveClass(this.getPath(Drupal.settings.basePath + state)); diff --git a/site/modules/overlay/overlay.info b/site/modules/overlay/overlay.info index e5459e7..dd760b7 100644 --- a/site/modules/overlay/overlay.info +++ b/site/modules/overlay/overlay.info @@ -4,8 +4,7 @@ package = Core version = VERSION core = 7.x -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/overlay/overlay.module b/site/modules/overlay/overlay.module index 7281986..7e54734 100644 --- a/site/modules/overlay/overlay.module +++ b/site/modules/overlay/overlay.module @@ -78,6 +78,20 @@ function overlay_theme() { ); } +/** + * Implements hook_form_alter(). + */ +function overlay_form_alter(&$form, &$form_state) { + // Add a hidden element to prevent dropping out of the overlay when a form is + // submitted inside the overlay using a GET method. + if (isset($form['#method']) && $form['#method'] == 'get' && isset($_REQUEST['render']) && $_REQUEST['render'] == 'overlay' && !isset($form['render'])) { + $form['render'] = array( + '#type' => 'hidden', + '#value' => 'overlay', + ); + } +} + /** * Implements hook_form_FORM_ID_alter(). */ @@ -146,6 +160,10 @@ function overlay_init() { // If this page shouldn't be rendered inside the overlay, redirect to the // parent. elseif (!path_is_admin($current_path)) { + // Prevent open redirects by ensuring the current path is not an absolute URL. + if (url_is_external($current_path)) { + $current_path = ''; + } overlay_close_dialog($current_path, array('query' => drupal_get_query_parameters(NULL, array('q', 'render')))); } diff --git a/site/modules/path/path.info b/site/modules/path/path.info index 7007fdf..404b8ee 100644 --- a/site/modules/path/path.info +++ b/site/modules/path/path.info @@ -6,8 +6,7 @@ core = 7.x files[] = path.test configure = admin/config/search/path -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/path/path.module b/site/modules/path/path.module index 81c7bb2..4614b0f 100644 --- a/site/modules/path/path.module +++ b/site/modules/path/path.module @@ -185,7 +185,7 @@ function path_form_element_validate($element, &$form_state, $complete_form) { * Implements hook_node_insert(). */ function path_node_insert($node) { - if (isset($node->path)) { + if (isset($node->path) && isset($node->path['alias'])) { $path = $node->path; $path['alias'] = trim($path['alias']); // Only save a non-empty alias. @@ -205,9 +205,9 @@ function path_node_insert($node) { function path_node_update($node) { if (isset($node->path)) { $path = $node->path; - $path['alias'] = trim($path['alias']); + $path['alias'] = isset($path['alias']) ? trim($path['alias']) : ''; // Delete old alias if user erased it. - if (!empty($path['pid']) && empty($path['alias'])) { + if (!empty($path['pid']) && !$path['alias']) { path_delete($path['pid']); } path_node_insert($node); diff --git a/site/modules/php/php.info b/site/modules/php/php.info index 39de081..9d211b0 100644 --- a/site/modules/php/php.info +++ b/site/modules/php/php.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x files[] = php.test -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/php/php.module b/site/modules/php/php.module index da9d01d..67616f6 100644 --- a/site/modules/php/php.module +++ b/site/modules/php/php.module @@ -17,7 +17,7 @@ function php_help($path, $arg) { $output .= '

                          ' . t('Uses') . '

                          '; $output .= '
                          '; $output .= '
                          ' . t('Enabling execution of PHP in text fields') . '
                          '; - $output .= '
                          ' . t('The PHP filter module allows users with the proper permissions to include custom PHP code that will get executed when pages of your site are processed. While this is a powerful and flexible feature if used by a trusted user with PHP experience, it is a significant and dangerous security risk in the hands of a malicious or inexperienced user. Even a trusted user may accidentally compromise the site by entering malformed or incorrect PHP code. Only the most trusted users should be granted permission to use the PHP filter, and all PHP code added through the PHP filter should be carefully examined before use. Example PHP snippets can be found on Drupal.org.', array('@php-snippets' => url('http://http://drupal.org/documentation/customization/php-snippets'))) . '
                          '; + $output .= '
                          ' . t('The PHP filter module allows users with the proper permissions to include custom PHP code that will get executed when pages of your site are processed. While this is a powerful and flexible feature if used by a trusted user with PHP experience, it is a significant and dangerous security risk in the hands of a malicious or inexperienced user. Even a trusted user may accidentally compromise the site by entering malformed or incorrect PHP code. Only the most trusted users should be granted permission to use the PHP filter, and all PHP code added through the PHP filter should be carefully examined before use. Example PHP snippets can be found on Drupal.org.', array('@php-snippets' => url('http://drupal.org/documentation/customization/php-snippets'))) . '
                          '; $output .= '
                          '; return $output; } diff --git a/site/modules/poll/poll.info b/site/modules/poll/poll.info index 2087de0..2b4f199 100644 --- a/site/modules/poll/poll.info +++ b/site/modules/poll/poll.info @@ -6,8 +6,7 @@ core = 7.x files[] = poll.test stylesheets[all][] = poll.css -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/poll/poll.module b/site/modules/poll/poll.module index 70eb65d..336e445 100644 --- a/site/modules/poll/poll.module +++ b/site/modules/poll/poll.module @@ -191,7 +191,6 @@ function poll_node_info() { 'base' => 'poll', 'description' => t('A poll is a question with a set of possible responses. A poll, once created, automatically provides a simple running count of the number of votes received for each response.'), 'title_label' => t('Question'), - 'has_body' => FALSE, ) ); } @@ -249,6 +248,7 @@ function poll_form($node, &$form_state) { '#title' => check_plain($type->title_label), '#required' => TRUE, '#default_value' => $node->title, + '#maxlength' => 255, '#weight' => -5, ); @@ -631,9 +631,6 @@ function poll_delete($node) { * The node object to load. */ function poll_block_latest_poll_view($node) { - global $user; - $output = ''; - // This is necessary for shared objects because PHP doesn't copy objects, but // passes them by reference. So when the objects are cached it can result in // the wrong output being displayed on subsequent calls. The cloning and @@ -674,9 +671,6 @@ function poll_block_latest_poll_view($node) { * Implements hook_view(). */ function poll_view($node, $view_mode) { - global $user; - $output = ''; - if (!empty($node->allowvotes) && empty($node->show_results)) { $node->content['poll_view_voting'] = drupal_get_form('poll_view_voting', $node); } @@ -694,7 +688,7 @@ function poll_view($node, $view_mode) { function poll_teaser($node) { $teaser = NULL; if (is_array($node->choice)) { - foreach ($node->choice as $k => $choice) { + foreach ($node->choice as $choice) { if ($choice['chtext'] != '') { $teaser .= '* ' . check_plain($choice['chtext']) . "\n"; } @@ -720,7 +714,6 @@ function poll_view_voting($form, &$form_state, $node, $block = FALSE) { '#type' => 'radios', '#title' => t('Choices'), '#title_display' => 'invisible', - '#default_value' => -1, '#options' => $list, ); } @@ -748,7 +741,7 @@ function poll_view_voting($form, &$form_state, $node, $block = FALSE) { * Validation function for processing votes */ function poll_view_voting_validate($form, &$form_state) { - if ($form_state['values']['choice'] == -1) { + if (empty($form_state['values']['choice'])) { form_set_error( 'choice', t('Your vote could not be recorded because you did not select any of the choices.')); } } @@ -925,7 +918,6 @@ function template_preprocess_poll_results(&$variables) { * * @see poll-bar.tpl.php * @see poll-bar--block.tpl.php - * @see theme_poll_bar() */ function template_preprocess_poll_bar(&$variables) { if ($variables['block']) { diff --git a/site/modules/poll/poll.test b/site/modules/poll/poll.test index 35eea22..e24032d 100644 --- a/site/modules/poll/poll.test +++ b/site/modules/poll/poll.test @@ -315,6 +315,11 @@ class PollVoteTestCase extends PollTestCase { $this->drupalLogin($vote_user); + // Record a vote without selecting any choice. + $edit = array(); + $this->drupalPost('node/' . $poll_nid, $edit, t('Vote')); + $this->assertText(t('Your vote could not be recorded because you did not select any of the choices.'), 'Found the empty poll submission error message.'); + // Record a vote for the first choice. $edit = array( 'choice' => '1', diff --git a/site/modules/profile/profile.info b/site/modules/profile/profile.info index 5ee4deb..ef52e3a 100644 --- a/site/modules/profile/profile.info +++ b/site/modules/profile/profile.info @@ -11,8 +11,7 @@ configure = admin/config/people/profile ; See user_system_info_alter(). hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/profile/profile.module b/site/modules/profile/profile.module index d76d08a..39cf030 100644 --- a/site/modules/profile/profile.module +++ b/site/modules/profile/profile.module @@ -571,6 +571,7 @@ function template_preprocess_profile_listing(&$variables) { // Supply filtered version of $fields that have values. foreach ($variables['fields'] as $field) { if ($field->value) { + $variables['profile'][$field->name] = new stdClass(); $variables['profile'][$field->name]->title = $field->title; $variables['profile'][$field->name]->value = $field->value; $variables['profile'][$field->name]->type = $field->type; diff --git a/site/modules/profile/profile.pages.inc b/site/modules/profile/profile.pages.inc index 06f9632..056015a 100644 --- a/site/modules/profile/profile.pages.inc +++ b/site/modules/profile/profile.pages.inc @@ -17,17 +17,15 @@ function profile_browse() { if ($name && $field->fid) { // Only allow browsing of fields that have a page title set. if (empty($field->page)) { - drupal_not_found(); - return; + return MENU_NOT_FOUND; } // Do not allow browsing of private and hidden fields by non-admins. if (!user_access('administer users') && ($field->visibility == PROFILE_PRIVATE || $field->visibility == PROFILE_HIDDEN)) { - drupal_access_denied(); - return; + return MENU_ACCESS_DENIED; } // Compile a list of fields to show. - $fields = db_query('SELECT name, title, type, weight, page FROM {profile_field} WHERE fid <> :fid AND visibility = :visibility ORDER BY weight', array( + $fields = db_query('SELECT name, title, type, weight, page, visibility FROM {profile_field} WHERE fid <> :fid AND visibility = :visibility ORDER BY weight', array( ':fid' => $field->fid, ':visibility' => PROFILE_PUBLIC_LISTINGS, ))->fetchAll(); @@ -54,8 +52,7 @@ function profile_browse() { $query->condition('v.value', '%' . db_like($value) . '%', 'LIKE'); break; default: - drupal_not_found(); - return; + return MENU_NOT_FOUND; } $uids = $query @@ -85,7 +82,7 @@ function profile_browse() { return $output; } elseif ($name && !$field->fid) { - drupal_not_found(); + return MENU_NOT_FOUND; } else { // Compile a list of fields to show. diff --git a/site/modules/profile/profile.test b/site/modules/profile/profile.test index 87fca4a..1892471 100644 --- a/site/modules/profile/profile.test +++ b/site/modules/profile/profile.test @@ -42,25 +42,25 @@ class ProfileTestCase extends DrupalWebTestCase { $this->drupalPost('admin/config/people/profile/add/' . $type, $edit, t('Save field')); $fid = db_query("SELECT fid FROM {profile_field} WHERE title = :title", array(':title' => $title))->fetchField(); - $this->assertTrue($fid, t('New Profile field has been entered in the database')); + $this->assertTrue($fid, 'New Profile field has been entered in the database'); // Check that the new field is appearing on the user edit form. $this->drupalGet('user/' . $this->admin_user->uid . '/edit/' . $category); // Checking field. if ($type == 'date') { - $this->assertField($form_name . '[month]', t('Found month selection field')); - $this->assertField($form_name . '[day]', t('Found day selection field')); - $this->assertField($form_name . '[year]', t('Found day selection field')); + $this->assertField($form_name . '[month]', 'Found month selection field'); + $this->assertField($form_name . '[day]', 'Found day selection field'); + $this->assertField($form_name . '[year]', 'Found day selection field'); } else { - $this->assertField($form_name , t('Found form named @name', array('@name' => $form_name))); + $this->assertField($form_name , format_string('Found form named @name', array('@name' => $form_name))); } // Checking name. - $this->assertText($title, t('Checking title for field %title', array('%title' => $title))); + $this->assertText($title, format_string('Checking title for field %title', array('%title' => $title))); // Checking explanation. - $this->assertText($edit['explanation'], t('Checking explanation for field %title', array('%title' => $title))); + $this->assertText($edit['explanation'], format_string('Checking explanation for field %title', array('%title' => $title))); return array( 'fid' => $fid, @@ -96,18 +96,18 @@ class ProfileTestCase extends DrupalWebTestCase { // Checking field. if ($type == 'date') { - $this->assertField($form_name . '[month]', t('Found month selection field')); - $this->assertField($form_name . '[day]', t('Found day selection field')); - $this->assertField($form_name . '[year]', t('Found day selection field')); + $this->assertField($form_name . '[month]', 'Found month selection field'); + $this->assertField($form_name . '[day]', 'Found day selection field'); + $this->assertField($form_name . '[year]', 'Found day selection field'); } else { - $this->assertField($form_name , t('Found form named @name', array('@name' => $form_name))); + $this->assertField($form_name , format_string('Found form named @name', array('@name' => $form_name))); } // Checking name. - $this->assertText($title, t('Checking title for field %title', array('%title' => $title))); + $this->assertText($title, format_string('Checking title for field %title', array('%title' => $title))); // Checking explanation. - $this->assertText($edit['explanation'], t('Checking explanation for field %title', array('%title' => $title))); + $this->assertText($edit['explanation'], format_string('Checking explanation for field %title', array('%title' => $title))); return array( 'fid' => $fid, @@ -141,11 +141,11 @@ class ProfileTestCase extends DrupalWebTestCase { // Check profile page. $content = $this->drupalGet('user/' . $this->normal_user->uid); - $this->assertText($field['title'], t('Found profile field with title %title', array('%title' => $field['title']))); + $this->assertText($field['title'], format_string('Found profile field with title %title', array('%title' => $field['title']))); if ($field['type'] != 'checkbox') { // $value must be cast to a string in order to be found by assertText. - $this->assertText("$value", t('Found profile field with value %value', array('%value' => $value))); + $this->assertText("$value", format_string('Found profile field with value %value', array('%value' => $value))); } return $value; @@ -160,7 +160,7 @@ class ProfileTestCase extends DrupalWebTestCase { function deleteProfileField($field) { $this->drupalPost('admin/config/people/profile/delete/' . $field['fid'], array(), t('Delete')); $this->drupalGet('admin/config/people/profile'); - $this->assertNoText($field['title'], t('Checking deleted field %title', array('%title' => $field['title']))); + $this->assertNoText($field['title'], format_string('Checking deleted field %title', array('%title' => $field['title']))); } } @@ -270,9 +270,9 @@ class ProfileTestDate extends ProfileTestCase { // Check profile page. $this->drupalGet('user/' . $this->normal_user->uid); - $this->assertText($field['title'], t('Found profile field with title %title', array('%title' => $field['title']))); + $this->assertText($field['title'], format_string('Found profile field with title %title', array('%title' => $field['title']))); - $this->assertText('01/09/1983', t('Found date profile field.')); + $this->assertText('01/09/1983', 'Found date profile field.'); $edit = array( 'name' => $field['form_name'], @@ -305,10 +305,10 @@ class ProfileTestWeights extends ProfileTestCase { $this->setProfileField($field2, $this->randomName(8)); $profile_edit = $this->drupalGet('user/' . $this->normal_user->uid . '/edit/' . $category); - $this->assertTrue(strpos($profile_edit, $field1['title']) > strpos($profile_edit, $field2['title']), t('Profile field weights are respected on the user edit form.')); + $this->assertTrue(strpos($profile_edit, $field1['title']) > strpos($profile_edit, $field2['title']), 'Profile field weights are respected on the user edit form.'); $profile_page = $this->drupalGet('user/' . $this->normal_user->uid); - $this->assertTrue(strpos($profile_page, $field1['title']) > strpos($profile_page, $field2['title']), t('Profile field weights are respected on the user profile page.')); + $this->assertTrue(strpos($profile_page, $field1['title']) > strpos($profile_page, $field2['title']), 'Profile field weights are respected on the user profile page.'); } } @@ -339,20 +339,30 @@ class ProfileTestAutocomplete extends ProfileTestCase { $this->setProfileField($field, $field['value']); // Set some html for what we want to see in the page output later. - $autocomplete_html = ''; - $field_html = ''; + // Autocomplete always uses non-clean URLs. + $current_clean_url = isset($GLOBALS['conf']['clean_url']) ? $GLOBALS['conf']['clean_url'] : NULL; + $GLOBALS['conf']['clean_url'] = 0; + $autocomplete_url = url('profile/autocomplete/' . $field['fid'], array('absolute' => TRUE, 'script' => 'index.php')); + $GLOBALS['conf']['clean_url'] = $current_clean_url; + $autocomplete_id = drupal_html_id('edit-' . $field['form_name'] . '-autocomplete'); + $autocomplete_html = ''; // Check that autocompletion html is found on the user's profile edit page. $this->drupalGet('user/' . $this->admin_user->uid . '/edit/' . $category); - $this->assertRaw($autocomplete_html, t('Autocomplete found.')); - $this->assertRaw('misc/autocomplete.js', t('Autocomplete JavaScript found.')); - $this->assertRaw('class="form-text form-autocomplete"', t('Autocomplete form element class found.')); + $this->assertRaw($autocomplete_html, 'Autocomplete found.'); + $this->assertFieldByXPath( + '//input[@type="text" and @name="' . $field['form_name'] . '" and contains(@class, "form-autocomplete")]', + '', + 'Text input field found' + ); + $this->assertRaw('misc/autocomplete.js', 'Autocomplete JavaScript found.'); + $this->assertRaw('class="form-text form-autocomplete"', 'Autocomplete form element class found.'); // Check the autocompletion path using the first letter of our user's profile // field value to make sure access is allowed and a valid result if found. $this->drupalGet('profile/autocomplete/' . $field['fid'] . '/' . $field['value'][0]); - $this->assertResponse(200, t('Autocomplete path allowed to user with permission.')); - $this->assertRaw($field['value'], t('Autocomplete value found.')); + $this->assertResponse(200, 'Autocomplete path allowed to user with permission.'); + $this->assertRaw($field['value'], 'Autocomplete value found.'); // Logout and login with a user without the 'access user profiles' permission. $this->drupalLogout(); @@ -360,11 +370,11 @@ class ProfileTestAutocomplete extends ProfileTestCase { // Check that autocompletion html is not found on the user's profile edit page. $this->drupalGet('user/' . $this->normal_user->uid . '/edit/' . $category); - $this->assertNoRaw($autocomplete_html, t('Autocomplete not found.')); + $this->assertNoRaw($autocomplete_html, 'Autocomplete not found.'); // User should be denied access to the profile autocomplete path. $this->drupalGet('profile/autocomplete/' . $field['fid'] . '/' . $field['value'][0]); - $this->assertResponse(403, t('Autocomplete path denied to user without permission.')); + $this->assertResponse(403, 'Autocomplete path denied to user without permission.'); } } @@ -403,48 +413,48 @@ class ProfileBlockTestCase extends ProfileTestCase { $edit = array(); $edit['blocks[profile_author-information][region]'] = 'footer'; $this->drupalPost('admin/structure/block', $edit, t('Save blocks')); - $this->assertText(t('The block settings have been updated.'), t('Block successfully move to footer region.')); + $this->assertText(t('The block settings have been updated.'), 'Block successfully move to footer region.'); // Enable field 1. $this->drupalPost('admin/structure/block/manage/profile/author-information/configure', array( 'profile_block_author_fields[' . $this->field1['form_name'] . ']' => TRUE, ), t('Save block')); - $this->assertText(t('The block configuration has been saved.'), t('Block configuration set.')); + $this->assertText(t('The block configuration has been saved.'), 'Block configuration set.'); // Visit the node and confirm that the field is displayed. $this->drupalGet('node/' . $this->node->nid); - $this->assertRaw($this->value1, t('Field 1 is displayed')); - $this->assertNoRaw($this->value2, t('Field 2 is not displayed')); + $this->assertRaw($this->value1, 'Field 1 is displayed'); + $this->assertNoRaw($this->value2, 'Field 2 is not displayed'); // Enable only field 2. $this->drupalPost('admin/structure/block/manage/profile/author-information/configure', array( 'profile_block_author_fields[' . $this->field1['form_name'] . ']' => FALSE, 'profile_block_author_fields[' . $this->field2['form_name'] . ']' => TRUE, ), t('Save block')); - $this->assertText(t('The block configuration has been saved.'), t('Block configuration set.')); + $this->assertText(t('The block configuration has been saved.'), 'Block configuration set.'); // Visit the node and confirm that the field is displayed. $this->drupalGet('node/' . $this->node->nid); - $this->assertNoRaw($this->value1, t('Field 1 is not displayed')); - $this->assertRaw($this->value2, t('Field 2 is displayed')); + $this->assertNoRaw($this->value1, 'Field 1 is not displayed'); + $this->assertRaw($this->value2, 'Field 2 is displayed'); // Enable both fields. $this->drupalPost('admin/structure/block/manage/profile/author-information/configure', array( 'profile_block_author_fields[' . $this->field1['form_name'] . ']' => TRUE, 'profile_block_author_fields[' . $this->field2['form_name'] . ']' => TRUE, ), t('Save block')); - $this->assertText(t('The block configuration has been saved.'), t('Block configuration set.')); + $this->assertText(t('The block configuration has been saved.'), 'Block configuration set.'); // Visit the node and confirm that the field is displayed. $this->drupalGet('node/' . $this->node->nid); - $this->assertRaw($this->value1, t('Field 1 is displayed')); - $this->assertRaw($this->value2, t('Field 2 is displayed')); + $this->assertRaw($this->value1, 'Field 1 is displayed'); + $this->assertRaw($this->value2, 'Field 2 is displayed'); // Enable the link to the user profile. $this->drupalPost('admin/structure/block/manage/profile/author-information/configure', array( 'profile_block_author_fields[user_profile]' => TRUE, ), t('Save block')); - $this->assertText(t('The block configuration has been saved.'), t('Block configuration set.')); + $this->assertText(t('The block configuration has been saved.'), 'Block configuration set.'); // Visit the node and confirm that the user profile link is displayed. $this->drupalGet('node/' . $this->node->nid); diff --git a/site/modules/rdf/rdf.info b/site/modules/rdf/rdf.info index 595a622..5964486 100644 --- a/site/modules/rdf/rdf.info +++ b/site/modules/rdf/rdf.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x files[] = rdf.test -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/rdf/rdf.module b/site/modules/rdf/rdf.module index e22d5a9..90a7382 100644 --- a/site/modules/rdf/rdf.module +++ b/site/modules/rdf/rdf.module @@ -190,17 +190,33 @@ function _rdf_get_default_mapping($type) { * An RDF mapping structure or an empty array if no record was found. */ function _rdf_mapping_load($type, $bundle) { - $mapping = db_select('rdf_mapping') - ->fields(NULL, array('mapping')) + $mappings = _rdf_mapping_load_multiple($type, array($bundle)); + return $mappings ? reset($mappings) : array(); +} + +/** + * Helper function to retrieve a set of RDF mappings from the database. + * + * @param $type + * The entity type of the mappings. + * @param $bundles + * The bundles the mappings refer to. + * + * @return + * An array of RDF mapping structures, or an empty array. + */ +function _rdf_mapping_load_multiple($type, array $bundles) { + $mappings = db_select('rdf_mapping') + ->fields(NULL, array('bundle', 'mapping')) ->condition('type', $type) - ->condition('bundle', $bundle) + ->condition('bundle', $bundles) ->execute() - ->fetchField(); + ->fetchAllKeyed(); - if (!$mapping) { - return array(); + foreach ($mappings as $bundle => $mapping) { + $mappings[$bundle] = unserialize($mapping); } - return unserialize($mapping); + return $mappings; } /** @@ -368,10 +384,13 @@ function rdf_modules_uninstalled($modules) { function rdf_entity_info_alter(&$entity_info) { // Loop through each entity type and its bundles. foreach ($entity_info as $entity_type => $entity_type_info) { - if (isset($entity_type_info['bundles'])) { - foreach ($entity_type_info['bundles'] as $bundle => $bundle_info) { - if ($mapping = _rdf_mapping_load($entity_type, $bundle)) { - $entity_info[$entity_type]['bundles'][$bundle]['rdf_mapping'] = $mapping; + if (!empty($entity_type_info['bundles'])) { + $bundles = array_keys($entity_type_info['bundles']); + $mappings = _rdf_mapping_load_multiple($entity_type, $bundles); + + foreach ($bundles as $bundle) { + if (isset($mappings[$bundle])) { + $entity_info[$entity_type]['bundles'][$bundle]['rdf_mapping'] = $mappings[$bundle]; } else { // If no mapping was found in the database, assign the default RDF @@ -471,27 +490,17 @@ function rdf_preprocess_node(&$variables) { $variables['attributes_array']['about'] = empty($variables['node_url']) ? NULL: $variables['node_url']; $variables['attributes_array']['typeof'] = empty($variables['node']->rdf_mapping['rdftype']) ? NULL : $variables['node']->rdf_mapping['rdftype']; - // Adds RDFa markup to the title of the node. Because the RDFa markup is - // added to the

                          tag which might contain HTML code, we specify an empty - // datatype to ensure the value of the title read by the RDFa parsers is a - // literal. - $variables['title_attributes_array']['property'] = empty($variables['node']->rdf_mapping['title']['predicates']) ? NULL : $variables['node']->rdf_mapping['title']['predicates']; - $variables['title_attributes_array']['datatype'] = ''; - - // In full node mode, the title is not displayed by node.tpl.php so it is - // added in the tag of the HTML page. - if ($variables['page']) { - $element = array( - '#tag' => 'meta', - '#attributes' => array( - 'content' => $variables['title'], - 'about' => $variables['node_url'], + // Adds RDFa markup about the title of the node to the title_suffix. + if (!empty($variables['node']->rdf_mapping['title']['predicates'])) { + $variables['title_suffix']['rdf_meta_title'] = array( + '#theme' => 'rdf_metadata', + '#metadata' => array( + array( + 'property' => $variables['node']->rdf_mapping['title']['predicates'], + 'content' => $variables['node']->title, + ), ), ); - if (!empty($variables['node']->rdf_mapping['title']['predicates'])) { - $element['#attributes']['property'] = $variables['node']->rdf_mapping['title']['predicates']; - } - drupal_add_html_head($element, 'rdf_node_title'); } // Adds RDFa markup for the date. @@ -511,35 +520,20 @@ function rdf_preprocess_node(&$variables) { } // Adds RDFa markup annotating the number of comments a node has. - if (isset($variables['node']->comment_count) && !empty($variables['node']->rdf_mapping['comment_count']['predicates'])) { - // Annotates the 'x comments' link in teaser view. - if (isset($variables['content']['links']['comment']['#links']['comment-comments'])) { - $comment_count_attributes['property'] = $variables['node']->rdf_mapping['comment_count']['predicates']; - $comment_count_attributes['content'] = $variables['node']->comment_count; - $comment_count_attributes['datatype'] = $variables['node']->rdf_mapping['comment_count']['datatype']; - // According to RDFa parsing rule number 4, a new subject URI is created - // from the href attribute if no rel/rev attribute is present. To get the - // original node URL from the about attribute of the parent container we - // set an empty rel attribute which triggers rule number 5. See - // http://www.w3.org/TR/rdfa-syntax/#sec_5.5. - $comment_count_attributes['rel'] = ''; - $variables['content']['links']['comment']['#links']['comment-comments']['attributes'] += $comment_count_attributes; - } - // In full node view, the number of comments is not displayed by - // node.tpl.php so it is expressed in RDFa in the tag of the HTML - // page. - if ($variables['page'] && user_access('access comments')) { - $element = array( - '#tag' => 'meta', - '#attributes' => array( - 'about' => $variables['node_url'], + if (isset($variables['node']->comment_count) && + !empty($variables['node']->rdf_mapping['comment_count']['predicates']) && + user_access('access comments')) { + // Adds RDFa markup for the comment count near the node title as metadata. + $variables['title_suffix']['rdf_meta_comment_count'] = array( + '#theme' => 'rdf_metadata', + '#metadata' => array( + array( 'property' => $variables['node']->rdf_mapping['comment_count']['predicates'], 'content' => $variables['node']->comment_count, 'datatype' => $variables['node']->rdf_mapping['comment_count']['datatype'], ), - ); - drupal_add_html_head($element, 'rdf_node_comment_count'); - } + ), + ); } } @@ -865,9 +859,9 @@ function theme_rdf_metadata($variables) { $output = ''; foreach ($variables['metadata'] as $attributes) { // Add a class so that developers viewing the HTML source can see why there - // are empty tags in the document. The class can also be used to set - // a CSS display:none rule in a theme where empty spans affect display. + // are empty tags in the document. $attributes['class'][] = 'rdf-meta'; + $attributes['class'][] = 'element-hidden'; // The XHTML+RDFa doctype allows either or syntax to // be used, but for maximum browser compatibility, W3C recommends the // former when serving pages using the text/html media type, see diff --git a/site/modules/rdf/rdf.test b/site/modules/rdf/rdf.test index 4d73377..22c41f1 100644 --- a/site/modules/rdf/rdf.test +++ b/site/modules/rdf/rdf.test @@ -301,7 +301,7 @@ class RdfMappingDefinitionTestCase extends TaxonomyWebTestCase { // Ensure the default bundle mapping for node is used. These attributes come // from the node default bundle definition. - $blog_title = $this->xpath("//meta[@property='dc:title' and @content='$node->title']"); + $blog_title = $this->xpath("//div[@about='$url']/span[@property='dc:title' and @content='$node->title']"); $blog_meta = $this->xpath("//div[(@about='$url') and (@typeof='sioct:Weblog')]//span[contains(@property, 'dc:date') and contains(@property, 'dc:created') and @datatype='xsd:dateTime' and @content='$isoDate']"); $this->assertTrue(!empty($blog_title), 'Property dc:title is present in meta tag.'); $this->assertTrue(!empty($blog_meta), 'RDF type is present on post. Properties dc:date and dc:created are present on post date.'); @@ -313,13 +313,18 @@ class RdfMappingDefinitionTestCase extends TaxonomyWebTestCase { */ function testAttributesInMarkup2() { $type = $this->drupalCreateContentType(array('type' => 'test_bundle_hook_install')); - $node = $this->drupalCreateNode(array('type' => 'test_bundle_hook_install')); + // Create node with single quotation mark title to ensure it does not get + // escaped more than once. + $node = $this->drupalCreateNode(array( + 'type' => 'test_bundle_hook_install', + 'title' => $this->randomName(8) . "'", + )); $isoDate = date('c', $node->changed); $url = url('node/' . $node->nid); $this->drupalGet('node/' . $node->nid); // Ensure the mapping defined in rdf_module.test is used. - $test_bundle_title = $this->xpath("//meta[@property='dc:title' and @content='$node->title']"); + $test_bundle_title = $this->xpath("//div[@about='$url']/span[@property='dc:title' and @content=\"$node->title\"]"); $test_bundle_meta = $this->xpath("//div[(@about='$url') and contains(@typeof, 'foo:mapping_install1') and contains(@typeof, 'bar:mapping_install2')]//span[contains(@property, 'dc:date') and contains(@property, 'dc:created') and @datatype='xsd:dateTime' and @content='$isoDate']"); $this->assertTrue(!empty($test_bundle_title), 'Property dc:title is present in meta tag.'); $this->assertTrue(!empty($test_bundle_meta), 'RDF type is present on post. Properties dc:date and dc:created are present on post date.'); @@ -338,7 +343,7 @@ class RdfMappingDefinitionTestCase extends TaxonomyWebTestCase { // Ensure the default bundle mapping for node is used. These attributes come // from the node default bundle definition. - $random_bundle_title = $this->xpath("//meta[@property='dc:title' and @content='$node->title']"); + $random_bundle_title = $this->xpath("//div[@about='$url']/span[@property='dc:title' and @content='$node->title']"); $random_bundle_meta = $this->xpath("//div[(@about='$url') and contains(@typeof, 'sioc:Item') and contains(@typeof, 'foaf:Document')]//span[contains(@property, 'dc:date') and contains(@property, 'dc:created') and @datatype='xsd:dateTime' and @content='$isoDate']"); $this->assertTrue(!empty($random_bundle_title), 'Property dc:title is present in meta tag.'); $this->assertTrue(!empty($random_bundle_meta), 'RDF type is present on post. Properties dc:date and dc:created are present on post date.'); @@ -436,7 +441,7 @@ class RdfCommentAttributesTestCase extends CommentHelperCase { $this->setCommentPreview(DRUPAL_OPTIONAL); $this->setCommentForm(TRUE); $this->setCommentSubject(TRUE); - $this->setCommentSettings('comment_default_mode', COMMENT_MODE_THREADED, t('Comment paging changed.')); + $this->setCommentSettings('comment_default_mode', COMMENT_MODE_THREADED, 'Comment paging changed.'); // Creates the nodes on which the test comments will be posted. $this->drupalLogin($this->web_user); @@ -456,15 +461,13 @@ class RdfCommentAttributesTestCase extends CommentHelperCase { // Tests number of comments in teaser view. $this->drupalGet('node'); - $comment_count_teaser = $this->xpath('//div[contains(@typeof, "sioc:Item")]//li[contains(@class, "comment-comments")]/a[contains(@property, "sioc:num_replies") and contains(@content, "2") and @datatype="xsd:integer"]'); + $node_url = url('node/' . $this->node1->nid); + $comment_count_teaser = $this->xpath('//div[@about=:node-url]/span[@property="sioc:num_replies" and @content="2" and @datatype="xsd:integer"]', array(':node-url' => $node_url)); $this->assertTrue(!empty($comment_count_teaser), 'RDFa markup for the number of comments found on teaser view.'); - $comment_count_link = $this->xpath('//div[@about=:url]//a[contains(@property, "sioc:num_replies") and @rel=""]', array(':url' => url("node/{$this->node1->nid}"))); - $this->assertTrue(!empty($comment_count_link), 'Empty rel attribute found in comment count link.'); // Tests number of comments in full node view. $this->drupalGet('node/' . $this->node1->nid); - $node_url = url('node/' . $this->node1->nid); - $comment_count_teaser = $this->xpath('/html/head/meta[@about=:node-url and @property="sioc:num_replies" and @content="2" and @datatype="xsd:integer"]', array(':node-url' => $node_url)); + $comment_count_teaser = $this->xpath('//div[@about=:node-url]/span[@property="sioc:num_replies" and @content="2" and @datatype="xsd:integer"]', array(':node-url' => $node_url)); $this->assertTrue(!empty($comment_count_teaser), 'RDFa markup for the number of comments found on full node view.'); } diff --git a/site/modules/rdf/tests/rdf_test.info b/site/modules/rdf/tests/rdf_test.info index 2595178..df9e829 100644 --- a/site/modules/rdf/tests/rdf_test.info +++ b/site/modules/rdf/tests/rdf_test.info @@ -4,9 +4,9 @@ package = Testing version = VERSION core = 7.x hidden = TRUE +dependencies[] = blog -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/search/search-result.tpl.php b/site/modules/search/search-result.tpl.php index 47e89ef..5f2e8bd 100644 --- a/site/modules/search/search-result.tpl.php +++ b/site/modules/search/search-result.tpl.php @@ -25,7 +25,7 @@ * the template. * * Default keys within $info_split: - * - $info_split['type']: Node type (or item type string supplied by module). + * - $info_split['module']: The module that implemented the search query. * - $info_split['user']: Author of the node linked to users profile. Depends * on permission. * - $info_split['date']: Last update of the node. Short formatted. diff --git a/site/modules/search/search.admin.inc b/site/modules/search/search.admin.inc index a609485..a37d37b 100644 --- a/site/modules/search/search.admin.inc +++ b/site/modules/search/search.admin.inc @@ -125,6 +125,16 @@ function search_admin_settings($form) { '#options' => $module_options, '#description' => t('Choose which search module is the default.') ); + $form['logging'] = array( + '#type' => 'fieldset', + '#title' => t('Logging') + ); + $form['logging']['search_logging'] = array( + '#type' => 'checkbox', + '#title' => t('Log searches'), + '#default_value' => variable_get('search_logging', 1), + '#description' => t('If checked, all searches will be logged. Uncheck to skip logging. Logging may affect performance.'), + ); $form['#validate'][] = 'search_admin_settings_validate'; $form['#submit'][] = 'search_admin_settings_submit'; diff --git a/site/modules/search/search.api.php b/site/modules/search/search.api.php index 62d53b8..8c17bb4 100644 --- a/site/modules/search/search.api.php +++ b/site/modules/search/search.api.php @@ -30,8 +30,9 @@ * * @return * Array with optional keys: - * - title: Title for the tab on the search page for this module. Defaults - * to the module name if not given. + * - title: Title for the tab on the search page for this module. Title must + * be untranslated. Outside of this return array, pass the title through the + * t() function to register it as a translatable string. * - path: Path component after 'search/' for searching with this module. * Defaults to the module name if not given. * - conditions_callback: An implementation of callback_search_conditions(). @@ -39,6 +40,9 @@ * @ingroup search */ function hook_search_info() { + // Make the title translatable. + t('Content'); + return array( 'title' => 'Content', 'path' => 'node', diff --git a/site/modules/search/search.extender.inc b/site/modules/search/search.extender.inc index ad4b86e..4074256 100644 --- a/site/modules/search/search.extender.inc +++ b/site/modules/search/search.extender.inc @@ -105,6 +105,8 @@ class SearchQuery extends SelectQueryExtender { * Stores score expressions. * * @var array + * + * @see addScore() */ protected $scores = array(); @@ -116,7 +118,7 @@ class SearchQuery extends SelectQueryExtender { protected $scoresArguments = array(); /** - * Total value of all the multipliers. + * Stores multipliers for score expressions. * * @var array */ @@ -147,6 +149,17 @@ class SearchQuery extends SelectQueryExtender { $this->searchExpression = $expression; $this->type = $module; + // Add a search_* tag. This needs to be added before any preExecute methods + // for decorated queries are called, as $this->prepared will be set to TRUE + // and tags added in the execute method will never get used. For example, + // if $query is extended by 'SearchQuery' then 'PagerDefault', the + // search-specific tag will be added too late (when preExecute() has + // already been called from the PagerDefault extender), and as a + // consequence will not be available to hook_query_alter() implementations, + // nor will the correct hook_query_TAG_alter() implementations get invoked. + // See node_search_execute(). + $this->addTag('search_' . $module); + return $this; } @@ -391,21 +404,39 @@ class SearchQuery extends SelectQueryExtender { /** * Adds a custom score expression to the search query. * - * Each score expression can optionally use a multiplier, and multiple - * expressions are combined. + * Score expressions are used to order search results. If no calls to + * addScore() have taken place, a default keyword relevance score will be + * used. However, if at least one call to addScore() has taken place, the + * keyword relevance score is not automatically added. + * + * Note that you must use this method to add ordering to your searches, and + * not call orderBy() directly, when using the SearchQuery extender. This is + * because of the two-pass system the SearchQuery class uses to normalize + * scores. * * @param $score - * The score expression. + * The score expression, which should evaluate to a number between 0 and 1. + * The string 'i.relevance' in a score expression will be replaced by a + * measure of keyword relevance between 0 and 1. * @param $arguments - * Custom query arguments for that expression. + * Query arguments needed to provide values to the score expression. * @param $multiply - * If set, the score is multiplied with that value. Search query ensures - * that the search scores are still normalized. + * If set, the score is multiplied with this value. However, all scores + * with multipliers are then divided by the total of all multipliers, so + * that overall, the normalization is maintained. + * + * @return object + * The updated query object. */ public function addScore($score, $arguments = array(), $multiply = FALSE) { if ($multiply) { $i = count($this->multiply); + // Modify the score expression so it is multiplied by the multiplier, + // with a divisor to renormalize. $score = "CAST(:multiply_$i AS DECIMAL) * COALESCE(( " . $score . "), 0) / CAST(:total_$i AS DECIMAL)"; + // Add an argument for the multiplier. The :total_$i argument is taken + // care of in the execute() method, which is when the total divisor is + // calculated. $arguments[':multiply_' . $i] = $multiply; $this->multiply[] = $multiply; } @@ -446,8 +477,9 @@ class SearchQuery extends SelectQueryExtender { } if (count($this->multiply)) { - // Add the total multiplicator as many times as requested to maintain - // normalization as far as possible. + // Re-normalize scores with multipliers by dividing by the total of all + // multipliers. The expressions were altered in addScore(), so here just + // add the arguments for the total. $i = 0; $sum = array_sum($this->multiply); foreach ($this->multiply as $total) { @@ -456,19 +488,25 @@ class SearchQuery extends SelectQueryExtender { } } - // Replace i.relevance pseudo-field with the actual, normalized value. - $this->scores = str_replace('i.relevance', '(' . (1.0 / $this->normalize) . ' * i.score * t.count)', $this->scores); - // Convert scores to an expression. + // Replace the pseudo-expression 'i.relevance' with a measure of keyword + // relevance in all score expressions, using string replacement. Careful + // though! If you just print out a float, some locales use ',' as the + // decimal separator in PHP, while SQL always uses '.'. So, make sure to + // set the number format correctly. + $relevance = number_format((1.0 / $this->normalize), 10, '.', ''); + $this->scores = str_replace('i.relevance', '(' . $relevance . ' * i.score * t.count)', $this->scores); + + // Add all scores together to form a query field. $this->addExpression('SUM(' . implode(' + ', $this->scores) . ')', 'calculated_score', $this->scoresArguments); + // If an order has not yet been set for this query, add a default order + // that sorts by the calculated sum of scores. if (count($this->getOrderBy()) == 0) { - // Add default order after adding the expression. $this->orderBy('calculated_score', 'DESC'); } - // Add tag and useful metadata. + // Add useful metadata. $this - ->addTag('search_' . $this->type) ->addMetaData('normalize', $this->normalize) ->fields('i', array('type', 'sid')); diff --git a/site/modules/search/search.info b/site/modules/search/search.info index 8541286..87336e5 100644 --- a/site/modules/search/search.info +++ b/site/modules/search/search.info @@ -8,8 +8,7 @@ files[] = search.test configure = admin/config/search/settings stylesheets[all][] = search.css -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/search/search.install b/site/modules/search/search.install index f0113b3..c91283c 100644 --- a/site/modules/search/search.install +++ b/site/modules/search/search.install @@ -12,6 +12,7 @@ function search_uninstall() { variable_del('minimum_word_size'); variable_del('overlap_cjk'); variable_del('search_cron_limit'); + variable_del('search_logging'); } /** diff --git a/site/modules/search/search.pages.inc b/site/modules/search/search.pages.inc index 9dd00a6..b24de8e 100644 --- a/site/modules/search/search.pages.inc +++ b/site/modules/search/search.pages.inc @@ -49,7 +49,7 @@ function search_view($module = NULL, $keys = '') { // which will get us back to this page callback. In other words, the search // form submits with POST but redirects to GET. This way we can keep // the search query URL clean as a whistle. - if (empty($_POST['form_id']) || $_POST['form_id'] != 'search_form') { + if (empty($_POST['form_id']) || ($_POST['form_id'] != 'search_form' && $_POST['form_id'] != 'search_block_form')) { $conditions = NULL; if (isset($info['conditions_callback']) && function_exists($info['conditions_callback'])) { // Build an optional array of more search conditions. @@ -57,9 +57,10 @@ function search_view($module = NULL, $keys = '') { } // Only search if there are keywords or non-empty conditions. if ($keys || !empty($conditions)) { - // Log the search keys. - watchdog('search', 'Searched %type for %keys.', array('%keys' => $keys, '%type' => $info['title']), WATCHDOG_NOTICE, l(t('results'), 'search/' . $info['path'] . '/' . $keys)); - + if (variable_get('search_logging', TRUE)) { + // Log the search keys. + watchdog('search', 'Searched %type for %keys.', array('%keys' => $keys, '%type' => $info['title']), WATCHDOG_NOTICE, l(t('results'), 'search/' . $info['path'] . '/' . $keys)); + } // Collect the search results. $results = search_data($keys, $info['module'], $conditions); } diff --git a/site/modules/search/search.test b/site/modules/search/search.test index 2892600..d3a60b4 100644 --- a/site/modules/search/search.test +++ b/site/modules/search/search.test @@ -11,6 +11,9 @@ define('SEARCH_TYPE', '_test_'); define('SEARCH_TYPE_2', '_test2_'); define('SEARCH_TYPE_JPN', '_test3_'); +/** + * Indexes content and queries it. + */ class SearchMatchTestCase extends DrupalWebTestCase { public static function getInfo() { return array( @@ -307,6 +310,9 @@ class SearchPageText extends DrupalWebTestCase { } } +/** + * Indexes content and tests the advanced search form. + */ class SearchAdvancedSearchForm extends DrupalWebTestCase { protected $node; @@ -370,6 +376,9 @@ class SearchAdvancedSearchForm extends DrupalWebTestCase { } } +/** + * Indexes content and tests ranking factors. + */ class SearchRankingTestCase extends DrupalWebTestCase { public static function getInfo() { return array( @@ -580,6 +589,9 @@ class SearchRankingTestCase extends DrupalWebTestCase { } } +/** + * Tests the rendering of the search block. + */ class SearchBlockTestCase extends DrupalWebTestCase { public static function getInfo() { return array( @@ -654,6 +666,24 @@ class SearchBlockTestCase extends DrupalWebTestCase { url('search/node/', array('absolute' => TRUE)), 'Redirected to correct url.' ); + + // Test that after entering a too-short keyword in the form, you can then + // search again with a longer keyword. First test using the block form. + $terms = array('search_block_form' => 'a'); + $this->drupalPost('node', $terms, t('Search')); + $this->assertText('You must include at least one positive keyword with 3 characters or more'); + $terms = array('search_block_form' => 'foo'); + $this->drupalPost(NULL, $terms, t('Search')); + $this->assertNoText('You must include at least one positive keyword with 3 characters or more'); + $this->assertText('Your search yielded no results'); + + // Same test again, using the search page form for the second search this time. + $terms = array('search_block_form' => 'a'); + $this->drupalPost('node', $terms, t('Search')); + $terms = array('keys' => 'foo'); + $this->drupalPost(NULL, $terms, t('Search')); + $this->assertNoText('You must include at least one positive keyword with 3 characters or more'); + $this->assertText('Your search yielded no results'); } } @@ -727,7 +757,7 @@ class SearchCommentTestCase extends DrupalWebTestCase { public static function getInfo() { return array( 'name' => 'Comment Search tests', - 'description' => 'Verify text formats and filters used elsewhere.', + 'description' => 'Test integration searching comments.', 'group' => 'Search', ); } @@ -1423,7 +1453,7 @@ class SearchConfigSettingsForm extends DrupalWebTestCase { parent::setUp('search', 'search_extra_type'); // Login as a user that can create and search content. - $this->search_user = $this->drupalCreateUser(array('search content', 'administer search', 'administer nodes', 'bypass node access', 'access user profiles', 'administer users', 'administer blocks')); + $this->search_user = $this->drupalCreateUser(array('search content', 'administer search', 'administer nodes', 'bypass node access', 'access user profiles', 'administer users', 'administer blocks', 'access site reports')); $this->drupalLogin($this->search_user); // Add a single piece of content and index it. @@ -1472,6 +1502,19 @@ class SearchConfigSettingsForm extends DrupalWebTestCase { ); $this->drupalPost('admin/config/search/settings', $edit, t('Save configuration')); $this->assertNoText(t('The configuration options have been saved.'), 'Form does not save with an invalid word length.'); + + // Test logging setting. It should be on by default. + $text = $this->randomName(5); + $this->drupalPost('search/node', array('keys' => $text), t('Search')); + $this->drupalGet('admin/reports/dblog'); + $this->assertLink('Searched Content for ' . $text . '.', 0, 'Search was logged'); + + // Turn off logging. + variable_set('search_logging', FALSE); + $text = $this->randomName(5); + $this->drupalPost('search/node', array('keys' => $text), t('Search')); + $this->drupalGet('admin/reports/dblog'); + $this->assertNoLink('Searched Content for ' . $text . '.', 'Search was not logged'); } /** @@ -1567,7 +1610,7 @@ class SearchConfigSettingsForm extends DrupalWebTestCase { /** * Tests the search_excerpt() function. */ -class SearchExcerptTestCase extends DrupalUnitTestCase { +class SearchExcerptTestCase extends DrupalWebTestCase { public static function getInfo() { return array( 'name' => 'Search excerpt extraction', @@ -1577,8 +1620,7 @@ class SearchExcerptTestCase extends DrupalUnitTestCase { } function setUp() { - drupal_load('module', 'search'); - parent::setUp(); + parent::setUp('search'); } /** @@ -1603,7 +1645,7 @@ class SearchExcerptTestCase extends DrupalUnitTestCase { $this->assertEqual($result, 'The quick brown fox & jumps over the lazy dog ...', 'Found keyword is highlighted'); $longtext = str_repeat($text . ' ', 10); - $result = preg_replace('| +|', ' ', search_excerpt('nothing', $text)); + $result = preg_replace('| +|', ' ', search_excerpt('nothing', $longtext)); $this->assertTrue(strpos($result, $expected) === 0, 'When keyword is not found in long string, return value starts as expected'); $entities = str_repeat('készítése ', 20); @@ -2018,10 +2060,11 @@ class SearchNodeAccessTest extends DrupalWebTestCase { } /** - * Tests that search returns results with punctuation in the search phrase. + * Tests that search works with punctuation and HTML entities. */ function testPhraseSearchPunctuation() { $node = $this->drupalCreateNode(array('body' => array(LANGUAGE_NONE => array(array('value' => "The bunny's ears were fuzzy."))))); + $node2 = $this->drupalCreateNode(array('body' => array(LANGUAGE_NONE => array(array('value' => 'Dignissim Aliquam & Quieligo meus natu quae quia te. Damnum© erat— neo pneum. Facilisi feugiat ibidem ratis.'))))); // Update the search index. module_invoke_all('update_index'); @@ -2034,5 +2077,99 @@ class SearchNodeAccessTest extends DrupalWebTestCase { $edit = array('keys' => '"bunny\'s"'); $this->drupalPost('search/node', $edit, t('Search')); $this->assertText($node->title); + + // Search for "&" and verify entities are not broken up in the output. + $edit = array('keys' => '&'); + $this->drupalPost('search/node', $edit, t('Search')); + $this->assertNoRaw('&amp;'); + $this->assertText('You must include at least one positive keyword'); + + $edit = array('keys' => '&'); + $this->drupalPost('search/node', $edit, t('Search')); + $this->assertNoRaw('&amp;'); + $this->assertText('You must include at least one positive keyword'); + } +} + +/** + * Tests node search with query tags. + */ +class SearchNodeTagTest extends DrupalWebTestCase { + public $test_user; + + public static function getInfo() { + return array( + 'name' => 'Node search query tags', + 'description' => 'Tests Node search tags functionality.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search', 'search_node_tags'); + node_access_rebuild(); + + // Create a test user and log in. + $this->test_user = $this->drupalCreateUser(array('search content')); + $this->drupalLogin($this->test_user); + } + + /** + * Tests that the correct tags are available and hooks invoked. + */ + function testNodeSearchQueryTags() { + $this->drupalCreateNode(array('body' => array(LANGUAGE_NONE => array(array('value' => 'testing testing testing.'))))); + + // Update the search index. + module_invoke_all('update_index'); + search_update_totals(); + + $edit = array('keys' => 'testing'); + $this->drupalPost('search/node', $edit, t('Search')); + + $this->assertTrue(variable_get('search_node_tags_test_query_tag', FALSE), 'hook_query_alter() was invoked and the query contained the "search_node" tag.'); + $this->assertTrue(variable_get('search_node_tags_test_query_tag_hook', FALSE), 'hook_query_search_node_alter() was invoked.'); + } +} + +/** + * Tests searching with locale values set. + */ +class SearchSetLocaleTest extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Search with numeric locale set', + 'description' => 'Check that search works with numeric locale settings', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + + // Create a simple node so something will be put in the index. + $info = array( + 'body' => array(LANGUAGE_NONE => array(array('value' => 'Tapir'))), + ); + $this->drupalCreateNode($info); + + // Run cron to index. + $this->cronRun(); + } + + /** + * Verify that search works with a numeric locale set. + */ + public function testSearchWithNumericLocale() { + // French decimal point is comma. + setlocale(LC_NUMERIC, 'fr_FR'); + + // An exception will be thrown if a float in the wrong format occurs in the + // query to the database, so an assertion is not necessary here. + db_select('search_index', 'i') + ->extend('searchquery') + ->searchexpression('tapir', 'node') + ->execute(); } } diff --git a/site/modules/search/tests/search_embedded_form.info b/site/modules/search/tests/search_embedded_form.info index c74d152..d037a82 100644 --- a/site/modules/search/tests/search_embedded_form.info +++ b/site/modules/search/tests/search_embedded_form.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/search/tests/search_extra_type.info b/site/modules/search/tests/search_extra_type.info index 84502ba..cc8f2bf 100644 --- a/site/modules/search/tests/search_extra_type.info +++ b/site/modules/search/tests/search_extra_type.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/search/tests/search_node_tags.info b/site/modules/search/tests/search_node_tags.info new file mode 100644 index 0000000..b3964b3 --- /dev/null +++ b/site/modules/search/tests/search_node_tags.info @@ -0,0 +1,11 @@ +name = "Test search node tags" +description = "Support module for Node search tags testing." +package = Testing +version = VERSION +core = 7.x +hidden = TRUE + +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" +project = "drupal" +datestamp = "1524673284" diff --git a/site/modules/search/tests/search_node_tags.module b/site/modules/search/tests/search_node_tags.module new file mode 100644 index 0000000..b66dd9e --- /dev/null +++ b/site/modules/search/tests/search_node_tags.module @@ -0,0 +1,23 @@ +hasTag('search_node')) { + variable_set('search_node_tags_test_query_tag', TRUE); + } +} + +/** + * Implements hook_query_TAG_alter(). + */ +function search_node_tags_query_search_node_alter(QueryAlterableInterface $query) { + variable_set('search_node_tags_test_query_tag_hook', TRUE); +} diff --git a/site/modules/shortcut/shortcut.admin.inc b/site/modules/shortcut/shortcut.admin.inc index c592a31..2e8ddb4 100644 --- a/site/modules/shortcut/shortcut.admin.inc +++ b/site/modules/shortcut/shortcut.admin.inc @@ -784,5 +784,5 @@ function shortcut_link_add_inline($shortcut_set) { drupal_goto(); } - return drupal_access_denied(); + return MENU_ACCESS_DENIED; } diff --git a/site/modules/shortcut/shortcut.info b/site/modules/shortcut/shortcut.info index bea4570..cfe7f4a 100644 --- a/site/modules/shortcut/shortcut.info +++ b/site/modules/shortcut/shortcut.info @@ -6,8 +6,7 @@ core = 7.x files[] = shortcut.test configure = admin/config/user-interface/shortcut -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/drupal_web_test_case.php b/site/modules/simpletest/drupal_web_test_case.php index 0853c7d..3124ffe 100644 --- a/site/modules/simpletest/drupal_web_test_case.php +++ b/site/modules/simpletest/drupal_web_test_case.php @@ -39,6 +39,13 @@ abstract class DrupalTestCase { */ protected $originalFileDirectory = NULL; + /** + * URL to the verbose output file directory. + * + * @var string + */ + protected $verboseDirectoryUrl; + /** * Time limit for the test. */ @@ -143,15 +150,7 @@ protected function assert($status, $message = '', $group = 'Other', array $calle ); // Store assertion for display after the test has completed. - try { - $connection = Database::getConnection('default', 'simpletest_original_default'); - } - catch (DatabaseConnectionNotDefinedException $e) { - // If the test was not set up, the simpletest_original_default - // connection does not exist. - $connection = Database::getConnection('default', 'default'); - } - $connection + self::getDatabaseConnection() ->insert('simpletest') ->fields($assertion) ->execute(); @@ -166,6 +165,25 @@ protected function assert($status, $message = '', $group = 'Other', array $calle } } + /** + * Returns the database connection to the site running Simpletest. + * + * @return DatabaseConnection + * The database connection to use for inserting assertions. + */ + public static function getDatabaseConnection() { + try { + $connection = Database::getConnection('default', 'simpletest_original_default'); + } + catch (DatabaseConnectionNotDefinedException $e) { + // If the test was not set up, the simpletest_original_default + // connection does not exist. + $connection = Database::getConnection('default', 'default'); + } + + return $connection; + } + /** * Store an assertion from outside the testing context. * @@ -205,7 +223,8 @@ public static function insertAssert($test_id, $test_class, $status, $message = ' 'file' => $caller['file'], ); - return db_insert('simpletest') + return self::getDatabaseConnection() + ->insert('simpletest') ->fields($assertion) ->execute(); } @@ -221,7 +240,8 @@ public static function insertAssert($test_id, $test_class, $status, $message = ' * @see DrupalTestCase::insertAssert() */ public static function deleteAssert($message_id) { - return (bool) db_delete('simpletest') + return (bool) self::getDatabaseConnection() + ->delete('simpletest') ->condition('message_id', $message_id) ->execute(); } @@ -435,10 +455,10 @@ protected function error($message = '', $group = 'Other', array $caller = NULL) } /** - * Logs verbose message in a text file. + * Logs a verbose message in a text file. * - * The a link to the vebose message will be placed in the test results via - * as a passing assertion with the text '[verbose message]'. + * The link to the verbose message will be placed in the test results as a + * passing assertion with the text '[verbose message]'. * * @param $message * The verbose message to be stored. @@ -448,8 +468,11 @@ protected function error($message = '', $group = 'Other', array $caller = NULL) protected function verbose($message) { if ($id = simpletest_verbose($message)) { $class_safe = str_replace('\\', '_', get_class($this)); - $url = file_create_url($this->originalFileDirectory . '/simpletest/verbose/' . $class_safe . '-' . $id . '.html'); - $this->error(l(t('Verbose message'), $url, array('attributes' => array('target' => '_blank'))), 'User notice'); + $url = $this->verboseDirectoryUrl . '/' . $class_safe . '-' . $id . '.html'; + // Not using l() to avoid invoking the theme system, so that unit tests + // can use verbose() as well. + $link = '' . t('Verbose message') . ''; + $this->error($link, 'User notice'); } } @@ -541,6 +564,15 @@ public function errorHandler($severity, $message, $file = NULL, $line = NULL) { E_RECOVERABLE_ERROR => 'Recoverable error', ); + // PHP 5.3 adds new error logging constants. Add these conditionally for + // backwards compatibility with PHP 5.2. + if (defined('E_DEPRECATED')) { + $error_map += array( + E_DEPRECATED => 'Deprecated', + E_USER_DEPRECATED => 'User deprecated', + ); + } + $backtrace = debug_backtrace(); $this->error($message, $error_map[$severity], _drupal_get_last_caller($backtrace)); } @@ -697,10 +729,17 @@ function __construct($test_id = NULL) { * method. */ protected function setUp() { - global $conf; + global $conf, $language; // Store necessary current values before switching to the test environment. $this->originalFileDirectory = variable_get('file_public_path', conf_path() . '/files'); + $this->verboseDirectoryUrl = file_create_url($this->originalFileDirectory . '/simpletest/verbose'); + + // Set up English language. + $this->originalLanguage = $language; + $this->originalLanguageDefault = variable_get('language_default'); + unset($conf['language_default']); + $language = language_default(); // Reset all statics so that test is performed with a clean environment. drupal_static_reset(); @@ -730,6 +769,10 @@ protected function setUp() { // subsequently will fail as the database is not accessible. $module_list = module_list(); if (isset($module_list['locale'])) { + // Transform the list into the format expected as input to module_list(). + foreach ($module_list as &$module) { + $module = array('filename' => drupal_get_filename('module', $module)); + } $this->originalModuleList = $module_list; unset($module_list['locale']); module_list(TRUE, FALSE, FALSE, $module_list); @@ -738,7 +781,7 @@ protected function setUp() { } protected function tearDown() { - global $conf; + global $conf, $language; // Get back to the original connection. Database::removeConnection('default'); @@ -749,6 +792,12 @@ protected function tearDown() { if (isset($this->originalModuleList)) { module_list(TRUE, FALSE, FALSE, $this->originalModuleList); } + + // Reset language. + $language = $this->originalLanguage; + if ($this->originalLanguageDefault) { + $GLOBALS['conf']['language_default'] = $this->originalLanguageDefault; + } } } @@ -827,6 +876,13 @@ class DrupalWebTestCase extends DrupalTestCase { */ protected $cookieFile = NULL; + /** + * The cookies of the page currently loaded in the internal browser. + * + * @var array + */ + protected $cookies = array(); + /** * Additional cURL options. * @@ -916,7 +972,6 @@ function drupalGetNodeByTitle($title, $reset = FALSE) { protected function drupalCreateNode($settings = array()) { // Populate defaults array. $settings += array( - 'body' => array(LANGUAGE_NONE => array(array())), 'title' => $this->randomName(8), 'comment' => 2, 'changed' => REQUEST_TIME, @@ -931,6 +986,12 @@ protected function drupalCreateNode($settings = array()) { 'language' => LANGUAGE_NONE, ); + // Add the body after the language is defined so that it may be set + // properly. + $settings += array( + 'body' => array($settings['language'] => array(array())), + ); + // Use the original node's created time for existing nodes. if (isset($settings['created']) && !isset($settings['date'])) { $settings['date'] = format_date($settings['created'], 'custom', 'Y-m-d H:i:s O'); @@ -989,9 +1050,7 @@ protected function drupalCreateContentType($settings = array()) { 'description' => '', 'help' => '', 'title_label' => 'Title', - 'body_label' => 'Body', 'has_title' => 1, - 'has_body' => 1, ); // Imposed values for a custom type. $forced = array( @@ -1041,7 +1100,7 @@ protected function drupalGetTestFiles($type, $size = NULL) { $lines = array(16, 256, 1024, 2048, 20480); $count = 0; foreach ($lines as $line) { - simpletest_generate_file('text-' . $count++, 64, $line); + simpletest_generate_file('text-' . $count++, 64, $line, 'text'); } // Copy other test files from simpletest. @@ -1132,7 +1191,7 @@ protected function drupalCreateUser(array $permissions = array()) { } /** - * Internal helper function; Create a role with specified permissions. + * Creates a role with specified permissions. * * @param $permissions * Array of permission names to assign to role. @@ -1338,12 +1397,14 @@ protected function changeDatabasePrefix() { * @see DrupalWebTestCase::tearDown() */ protected function prepareEnvironment() { - global $user, $language, $conf; + global $user, $language, $language_url, $conf; // Store necessary current values before switching to prefixed database. $this->originalLanguage = $language; + $this->originalLanguageUrl = $language_url; $this->originalLanguageDefault = variable_get('language_default'); $this->originalFileDirectory = variable_get('file_public_path', conf_path() . '/files'); + $this->verboseDirectoryUrl = file_create_url($this->originalFileDirectory . '/simpletest/verbose'); $this->originalProfile = drupal_get_profile(); $this->originalCleanUrl = variable_get('clean_url', 0); $this->originalUser = $user; @@ -1351,7 +1412,7 @@ protected function prepareEnvironment() { // Set to English to prevent exceptions from utf8_truncate() from t() // during install if the current language is not 'en'. // The following array/object conversion is copied from language_default(). - $language = (object) array('language' => 'en', 'name' => 'English', 'native' => 'English', 'direction' => 0, 'enabled' => 1, 'plurals' => 0, 'formula' => '', 'domain' => '', 'prefix' => '', 'weight' => 0, 'javascript' => ''); + $language_url = $language = (object) array('language' => 'en', 'name' => 'English', 'native' => 'English', 'direction' => 0, 'enabled' => 1, 'plurals' => 0, 'formula' => '', 'domain' => '', 'prefix' => '', 'weight' => 0, 'javascript' => ''); // Save and clean the shutdown callbacks array because it is static cached // and will be changed by the test run. Otherwise it will contain callbacks @@ -1409,7 +1470,7 @@ protected function prepareEnvironment() { * @see DrupalWebTestCase::prepareEnvironment() */ protected function setUp() { - global $user, $language, $conf; + global $user, $language, $language_url, $conf; // Create the database prefix for this test. $this->prepareDatabasePrefix(); @@ -1506,7 +1567,7 @@ protected function setUp() { // Set up English language. unset($conf['language_default']); - $language = language_default(); + $language_url = $language = language_default(); // Use the test mail class instead of the default mail handler class. variable_set('mail_system', array('default-system' => 'TestingMailSystem')); @@ -1600,7 +1661,7 @@ protected function refreshVariables() { * and reset the database prefix. */ protected function tearDown() { - global $user, $language; + global $user, $language, $language_url; // In case a fatal error occurred that was not in the test process read the // log to pick up any fatal errors. @@ -1665,12 +1726,15 @@ protected function tearDown() { // Reset language. $language = $this->originalLanguage; + $language_url = $this->originalLanguageUrl; if ($this->originalLanguageDefault) { $GLOBALS['conf']['language_default'] = $this->originalLanguageDefault; } - // Close the CURL handler. + // Close the CURL handler and reset the cookies array so test classes + // containing multiple tests are not polluted. $this->curlClose(); + $this->cookies = array(); } /** @@ -1743,14 +1807,24 @@ protected function curlInitialize() { protected function curlExec($curl_options, $redirect = FALSE) { $this->curlInitialize(); - // cURL incorrectly handles URLs with a fragment by including the - // fragment in the request to the server, causing some web servers - // to reject the request citing "400 - Bad Request". To prevent - // this, we strip the fragment from the request. - // TODO: Remove this for Drupal 8, since fixed in curl 7.20.0. - if (!empty($curl_options[CURLOPT_URL]) && strpos($curl_options[CURLOPT_URL], '#')) { - $original_url = $curl_options[CURLOPT_URL]; - $curl_options[CURLOPT_URL] = strtok($curl_options[CURLOPT_URL], '#'); + if (!empty($curl_options[CURLOPT_URL])) { + // Forward XDebug activation if present. + if (isset($_COOKIE['XDEBUG_SESSION'])) { + $options = drupal_parse_url($curl_options[CURLOPT_URL]); + $options += array('query' => array()); + $options['query'] += array('XDEBUG_SESSION_START' => $_COOKIE['XDEBUG_SESSION']); + $curl_options[CURLOPT_URL] = url($options['path'], $options); + } + + // cURL incorrectly handles URLs with a fragment by including the + // fragment in the request to the server, causing some web servers + // to reject the request citing "400 - Bad Request". To prevent + // this, we strip the fragment from the request. + // TODO: Remove this for Drupal 8, since fixed in curl 7.20.0. + if (strpos($curl_options[CURLOPT_URL], '#')) { + $original_url = $curl_options[CURLOPT_URL]; + $curl_options[CURLOPT_URL] = strtok($curl_options[CURLOPT_URL], '#'); + } } $url = empty($curl_options[CURLOPT_URL]) ? curl_getinfo($this->curlHandle, CURLINFO_EFFECTIVE_URL) : $curl_options[CURLOPT_URL]; @@ -2042,7 +2116,14 @@ protected function drupalPost($path, $edit, $submit, array $options = array(), a foreach ($upload as $key => $file) { $file = drupal_realpath($file); if ($file && is_file($file)) { - $post[$key] = '@' . $file; + // Use the new CurlFile class for file uploads when using PHP + // 5.5 or higher. + if (class_exists('CurlFile')) { + $post[$key] = curl_file_create($file); + } + else { + $post[$key] = '@' . $file; + } } } } @@ -2178,6 +2259,7 @@ protected function drupalPostAJAX($path, $edit, $triggering_element, $ajax_path // Submit the POST request. $return = drupal_json_decode($this->drupalPost(NULL, $edit, array('path' => $ajax_path, 'triggering_element' => $triggering_element), $options, $headers, $form_html_id, $extra_post)); + $this->assertIdentical($this->drupalGetHeader('X-Drupal-Ajax-Token'), '1', 'Ajax response header found.'); // Change the page content by applying the returned commands. if (!empty($ajax_settings) && !empty($return)) { @@ -2214,8 +2296,13 @@ protected function drupalPostAJAX($path, $edit, $triggering_element, $ajax_path if ($wrapperNode) { // ajax.js adds an enclosing DIV to work around a Safari bug. $newDom = new DOMDocument(); + // DOM can load HTML soup. But, HTML soup can throw warnings, + // suppress them. $newDom->loadHTML('
                          ' . $command['data'] . '
                          '); - $newNode = $dom->importNode($newDom->documentElement->firstChild->firstChild, TRUE); + // Suppress warnings thrown when duplicate HTML IDs are + // encountered. This probably means we are replacing an element + // with the same ID. + $newNode = @$dom->importNode($newDom->documentElement->firstChild->firstChild, TRUE); $method = isset($command['method']) ? $command['method'] : $ajax_settings['method']; // The "method" is a jQuery DOM manipulation function. Emulate // each one using PHP's DOMNode API. @@ -2249,6 +2336,13 @@ protected function drupalPostAJAX($path, $edit, $triggering_element, $ajax_path } break; + case 'updateBuildId': + $buildId = $xpath->query('//input[@name="form_build_id" and @value="' . $command['old'] . '"]')->item(0); + if ($buildId) { + $buildId->setAttribute('value', $command['new']); + } + break; + // @todo Add suitable implementations for these commands in order to // have full test coverage of what ajax.js can do. case 'remove': @@ -2261,12 +2355,22 @@ protected function drupalPostAJAX($path, $edit, $triggering_element, $ajax_path break; case 'restripe': break; + case 'add_css': + break; } } $content = $dom->saveHTML(); } $this->drupalSetContent($content); $this->drupalSetSettings($drupal_settings); + + $verbose = 'AJAX POST request to: ' . $path; + $verbose .= '
                          AJAX callback path: ' . $ajax_path; + $verbose .= '
                          Ending URL: ' . $this->getUrl(); + $verbose .= '
                          ' . $this->content; + + $this->verbose($verbose); + return $return; } @@ -2520,6 +2624,11 @@ protected function buildXPathQuery($xpath, array $args = array()) { * * @param $xpath * The xpath string to use in the search. + * @param array $arguments + * An array of arguments with keys in the form ':name' matching the + * placeholders in the query. The values may be either strings or numeric + * values. + * * @return * The return value of the xpath search. For details on the xpath string * format and return values see the SimpleXML documentation, @@ -2589,8 +2698,6 @@ protected function assertLink($label, $index = 0, $message = '', $group = 'Other * * @param $label * Text between the anchor tags. - * @param $index - * Link position counting from zero. * @param $message * Message to display. * @param $group @@ -2649,28 +2756,26 @@ protected function assertNoLinkByHref($href, $message = '', $group = 'Other') { * * Will click the first link found with this link text by default, or a later * one if an index is given. Match is case sensitive with normalized space. - * The label is translated label. There is an assert for successful click. + * The label is translated label. + * + * If the link is discovered and clicked, the test passes. Fail otherwise. * * @param $label * Text between the anchor tags. * @param $index * Link position counting from zero. * @return - * Page on success, or FALSE on failure. + * Page contents on success, or FALSE on failure. */ protected function clickLink($label, $index = 0) { $url_before = $this->getUrl(); $urls = $this->xpath('//a[normalize-space(text())=:label]', array(':label' => $label)); - if (isset($urls[$index])) { $url_target = $this->getAbsoluteUrl($urls[$index]['href']); - } - - $this->assertTrue(isset($urls[$index]), t('Clicked link %label (@url_target) from @url_before', array('%label' => $label, '@url_target' => $url_target, '@url_before' => $url_before)), t('Browser')); - - if (isset($url_target)) { + $this->pass(t('Clicked link %label (@url_target) from @url_before', array('%label' => $label, '@url_target' => $url_target, '@url_before' => $url_before)), 'Browser'); return $this->drupalGet($url_target); } + $this->fail(t('Link %label does not exist on @url_before', array('%label' => $label, '@url_before' => $url_before)), 'Browser'); return FALSE; } @@ -2695,7 +2800,7 @@ protected function getAbsoluteUrl($path) { $path = substr($path, $length); } // Ensure that we have an absolute path. - if ($path[0] !== '/') { + if (empty($path) || $path[0] !== '/') { $path = '/' . $path; } // Finally, prepend the $base_url. @@ -3154,7 +3259,7 @@ protected function assertNoTitle($title, $message = '', $group = 'Other') { * @param $callback * The name of the theme function to invoke; e.g. 'links' for theme_links(). * @param $variables - * An array of variables to pass to the theme function. + * (optional) An array of variables to pass to the theme function. * @param $expected * The expected themed output string. * @param $message @@ -3190,7 +3295,9 @@ protected function assertThemeOutput($callback, array $variables = array(), $exp * @param $xpath * XPath used to find the field. * @param $value - * (optional) Value of the field to assert. + * (optional) Value of the field to assert. You may pass in NULL (default) + * to skip checking the actual value, while still checking that the field + * exists. * @param $message * (optional) Message to display. * @param $group @@ -3258,12 +3365,14 @@ protected function getSelectedItem(SimpleXMLElement $element) { } /** - * Asserts that a field does not exist in the current page by the given XPath. + * Asserts that a field doesn't exist or its value doesn't match, by XPath. * * @param $xpath * XPath used to find the field. * @param $value - * (optional) Value of the field to assert. + * (optional) Value for the field, to assert that the field's value on the + * page doesn't match it. You may pass in NULL to skip checking the + * value, while still checking that the field doesn't exist. * @param $message * (optional) Message to display. * @param $group @@ -3296,7 +3405,9 @@ protected function assertNoFieldByXPath($xpath, $value = NULL, $message = '', $g * @param $name * Name of field to assert. * @param $value - * Value of the field to assert. + * (optional) Value of the field to assert. You may pass in NULL (default) + * to skip checking the actual value, while still checking that the field + * exists. * @param $message * Message to display. * @param $group @@ -3327,9 +3438,12 @@ protected function assertFieldByName($name, $value = NULL, $message = NULL) { * @param $name * Name of field to assert. * @param $value - * Value of the field to assert. + * (optional) Value for the field, to assert that the field's value on the + * page doesn't match it. You may pass in NULL to skip checking the + * value, while still checking that the field doesn't exist. However, the + * default value ('') asserts that the field value is not an empty string. * @param $message - * Message to display. + * (optional) Message to display. * @param $group * The group this message belongs to. * @return @@ -3340,14 +3454,17 @@ protected function assertNoFieldByName($name, $value = '', $message = '') { } /** - * Asserts that a field exists in the current page with the given id and value. + * Asserts that a field exists in the current page with the given ID and value. * * @param $id - * Id of field to assert. + * ID of field to assert. * @param $value - * Value of the field to assert. + * (optional) Value for the field to assert. You may pass in NULL to skip + * checking the value, while still checking that the field exists. + * However, the default value ('') asserts that the field value is an empty + * string. * @param $message - * Message to display. + * (optional) Message to display. * @param $group * The group this message belongs to. * @return @@ -3358,14 +3475,17 @@ protected function assertFieldById($id, $value = '', $message = '') { } /** - * Asserts that a field does not exist with the given id and value. + * Asserts that a field does not exist with the given ID and value. * * @param $id - * Id of field to assert. + * ID of field to assert. * @param $value - * Value of the field to assert. + * (optional) Value for the field, to assert that the field's value on the + * page doesn't match it. You may pass in NULL to skip checking the value, + * while still checking that the field doesn't exist. However, the default + * value ('') asserts that the field value is not an empty string. * @param $message - * Message to display. + * (optional) Message to display. * @param $group * The group this message belongs to. * @return @@ -3379,9 +3499,9 @@ protected function assertNoFieldById($id, $value = '', $message = '') { * Asserts that a checkbox field in the current page is checked. * * @param $id - * Id of field to assert. + * ID of field to assert. * @param $message - * Message to display. + * (optional) Message to display. * @return * TRUE on pass, FALSE on fail. */ @@ -3394,9 +3514,9 @@ protected function assertFieldChecked($id, $message = '') { * Asserts that a checkbox field in the current page is not checked. * * @param $id - * Id of field to assert. + * ID of field to assert. * @param $message - * Message to display. + * (optional) Message to display. * @return * TRUE on pass, FALSE on fail. */ @@ -3409,11 +3529,11 @@ protected function assertNoFieldChecked($id, $message = '') { * Asserts that a select option in the current page is checked. * * @param $id - * Id of select field to assert. + * ID of select field to assert. * @param $option * Option to assert. * @param $message - * Message to display. + * (optional) Message to display. * @return * TRUE on pass, FALSE on fail. * @@ -3428,11 +3548,11 @@ protected function assertOptionSelected($id, $option, $message = '') { * Asserts that a select option in the current page is not checked. * * @param $id - * Id of select field to assert. + * ID of select field to assert. * @param $option * Option to assert. * @param $message - * Message to display. + * (optional) Message to display. * @return * TRUE on pass, FALSE on fail. */ @@ -3442,12 +3562,12 @@ protected function assertNoOptionSelected($id, $option, $message = '') { } /** - * Asserts that a field exists with the given name or id. + * Asserts that a field exists with the given name or ID. * * @param $field - * Name or id of field to assert. + * Name or ID of field to assert. * @param $message - * Message to display. + * (optional) Message to display. * @param $group * The group this message belongs to. * @return @@ -3458,12 +3578,12 @@ protected function assertField($field, $message = '', $group = 'Other') { } /** - * Asserts that a field does not exist with the given name or id. + * Asserts that a field does not exist with the given name or ID. * * @param $field - * Name or id of field to assert. + * Name or ID of field to assert. * @param $message - * Message to display. + * (optional) Message to display. * @param $group * The group this message belongs to. * @return diff --git a/site/modules/simpletest/files/css_test_files/css_input_with_import.css b/site/modules/simpletest/files/css_test_files/css_input_with_import.css index 87afcb3..484db83 100644 --- a/site/modules/simpletest/files/css_test_files/css_input_with_import.css +++ b/site/modules/simpletest/files/css_test_files/css_input_with_import.css @@ -1,5 +1,7 @@ +@import url("http://example.com/style.css"); +@import url("//example.com/style.css"); @import "import1.css"; @import "import2.css"; diff --git a/site/modules/simpletest/files/css_test_files/css_input_with_import.css.optimized.css b/site/modules/simpletest/files/css_test_files/css_input_with_import.css.optimized.css index 698d9aa..a2af7b3 100644 --- a/site/modules/simpletest/files/css_test_files/css_input_with_import.css.optimized.css +++ b/site/modules/simpletest/files/css_test_files/css_input_with_import.css.optimized.css @@ -1,4 +1,4 @@ -ul,select{font:1em/160% Verdana,sans-serif;color:#494949;}.ui-icon{background-image:url(images/icon.png);} +@import url("http://example.com/style.css");@import url("//example.com/style.css");ul,select{font:1em/160% Verdana,sans-serif;color:#494949;}.ui-icon{background-image:url(images/icon.png);}.data .double-quote{background-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");}.data .single-quote{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKAAH//Z');}.data .no-quote{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAEAQAAAAAo/mtHAAAAIElEQVQIHWMRnWHwcRNLN8NZ7QYWwT8PlBlYsgqVBRsAankIMw5MtnoAAAAASUVORK5CYII=);} p,select{font:1em/160% Verdana,sans-serif;color:#494949;} body{margin:0;padding:0;background:#edf5fa;font:76%/170% Verdana,sans-serif;color:#494949;}.this .is .a .test{font:1em/100% Verdana,sans-serif;color:#494949;}.this .is diff --git a/site/modules/simpletest/files/css_test_files/css_input_with_import.css.unoptimized.css b/site/modules/simpletest/files/css_test_files/css_input_with_import.css.unoptimized.css index 4c905f5..bc3c7b6 100644 --- a/site/modules/simpletest/files/css_test_files/css_input_with_import.css.unoptimized.css +++ b/site/modules/simpletest/files/css_test_files/css_input_with_import.css.unoptimized.css @@ -1,6 +1,33 @@ +@import url("http://example.com/style.css"); +@import url("//example.com/style.css"); +ul, select { + font: 1em/160% Verdana, sans-serif; + color: #494949; +} +.ui-icon{background-image: url(images/icon.png);} + +/* Test data URI images with different quote styles. */ +.data .double-quote { + /* http://stackoverflow.com/a/13139830/11023 */ + background-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} + +.data .single-quote { + background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKAAH//Z'); +} + +.data .no-quote { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAEAQAAAAAo/mtHAAAAIElEQVQIHWMRnWHwcRNLN8NZ7QYWwT8PlBlYsgqVBRsAankIMw5MtnoAAAAASUVORK5CYII=); +} + + +p, select { + font: 1em/160% Verdana, sans-serif; + color: #494949; +} body { diff --git a/site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css b/site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css new file mode 100644 index 0000000..d90ecbc --- /dev/null +++ b/site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css @@ -0,0 +1,29 @@ + + +@import "../import1.css"; +@import "../import2.css"; + +body { + margin: 0; + padding: 0; + background: #edf5fa; + font: 76%/170% Verdana, sans-serif; + color: #494949; +} + +.this .is .a .test { + font: 1em/100% Verdana, sans-serif; + color: #494949; +} +.this +.is +.a +.test { +font: 1em/100% Verdana, sans-serif; +color: #494949; +} + +textarea, select { + font: 1em/160% Verdana, sans-serif; + color: #494949; +} diff --git a/site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.optimized.css b/site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.optimized.css new file mode 100644 index 0000000..816039d --- /dev/null +++ b/site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.optimized.css @@ -0,0 +1,6 @@ +ul,select{font:1em/160% Verdana,sans-serif;color:#494949;}.ui-icon{background-image:url(../images/icon.png);}.data .double-quote{background-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");}.data .single-quote{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKAAH//Z');}.data .no-quote{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAEAQAAAAAo/mtHAAAAIElEQVQIHWMRnWHwcRNLN8NZ7QYWwT8PlBlYsgqVBRsAankIMw5MtnoAAAAASUVORK5CYII=);} +p,select{font:1em/160% Verdana,sans-serif;color:#494949;} +body{margin:0;padding:0;background:#edf5fa;font:76%/170% Verdana,sans-serif;color:#494949;}.this .is .a .test{font:1em/100% Verdana,sans-serif;color:#494949;}.this +.is +.a +.test{font:1em/100% Verdana,sans-serif;color:#494949;}textarea,select{font:1em/160% Verdana,sans-serif;color:#494949;} diff --git a/site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.unoptimized.css b/site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.unoptimized.css new file mode 100644 index 0000000..6d7151b --- /dev/null +++ b/site/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.unoptimized.css @@ -0,0 +1,54 @@ + + + +ul, select { + font: 1em/160% Verdana, sans-serif; + color: #494949; +} +.ui-icon{background-image: url(../images/icon.png);} + +/* Test data URI images with different quote styles. */ +.data .double-quote { + /* http://stackoverflow.com/a/13139830/11023 */ + background-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} + +.data .single-quote { + background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKAAH//Z'); +} + +.data .no-quote { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAEAQAAAAAo/mtHAAAAIElEQVQIHWMRnWHwcRNLN8NZ7QYWwT8PlBlYsgqVBRsAankIMw5MtnoAAAAASUVORK5CYII=); +} + + +p, select { + font: 1em/160% Verdana, sans-serif; + color: #494949; +} + + +body { + margin: 0; + padding: 0; + background: #edf5fa; + font: 76%/170% Verdana, sans-serif; + color: #494949; +} + +.this .is .a .test { + font: 1em/100% Verdana, sans-serif; + color: #494949; +} +.this +.is +.a +.test { +font: 1em/100% Verdana, sans-serif; +color: #494949; +} + +textarea, select { + font: 1em/160% Verdana, sans-serif; + color: #494949; +} diff --git a/site/modules/simpletest/files/css_test_files/import1.css b/site/modules/simpletest/files/css_test_files/import1.css index 3d5842e..e53d6d5 100644 --- a/site/modules/simpletest/files/css_test_files/import1.css +++ b/site/modules/simpletest/files/css_test_files/import1.css @@ -3,4 +3,18 @@ ul, select { font: 1em/160% Verdana, sans-serif; color: #494949; } -.ui-icon{background-image: url(images/icon.png);} \ No newline at end of file +.ui-icon{background-image: url(images/icon.png);} + +/* Test data URI images with different quote styles. */ +.data .double-quote { + /* http://stackoverflow.com/a/13139830/11023 */ + background-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} + +.data .single-quote { + background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKAAH//Z'); +} + +.data .no-quote { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAEAQAAAAAo/mtHAAAAIElEQVQIHWMRnWHwcRNLN8NZ7QYWwT8PlBlYsgqVBRsAankIMw5MtnoAAAAASUVORK5CYII=); +} diff --git a/site/modules/simpletest/files/image-test-no-transparency.gif b/site/modules/simpletest/files/image-test-no-transparency.gif new file mode 100644 index 0000000000000000000000000000000000000000..15ae7772dc4ab73ef2ccdca1a2fb7bc463b9aea3 GIT binary patch literal 964 zcmZ?wbhEHb)L;-{_|5pC)2&n-wrVv_4qMH3(_zXW2@d=fo}7VP3pPyL^pDUj?uHx)~O) Qla95@+Rs~Irodng04Q`+2LJ#7 literal 0 HcmV?d00001 diff --git a/site/modules/simpletest/files/image-test-transparent-out-of-range.gif b/site/modules/simpletest/files/image-test-transparent-out-of-range.gif new file mode 100644 index 0000000000000000000000000000000000000000..a54df7a93ce2346e19414536a3a8eb555f64f8d1 GIT binary patch literal 183 zcmZ?wbhEHb)L;-{IK%)3|AFLxAOXbxK{N;`{$ycfU|?g=0dYWT8JKGb=t5n!+_BT}-q<=e+CBR^E^YIlLQph@XE_%@DZj;qn)Ttdkecd;6*8 z&7vbKTMxVyio3Ti!AH!1F|}w0cii&h&$lQ1y?XKKNAtb1$K0P(m*wSGW;TYIbQ;uG YWoxN4^!3Y5Oq@KWciMF6B2ETt0P&+sLI3~& literal 0 HcmV?d00001 diff --git a/site/modules/simpletest/simpletest.info b/site/modules/simpletest/simpletest.info index a57d47b..67234c5 100644 --- a/site/modules/simpletest/simpletest.info +++ b/site/modules/simpletest/simpletest.info @@ -11,10 +11,12 @@ configure = admin/config/development/testing/settings files[] = tests/actions.test files[] = tests/ajax.test files[] = tests/batch.test +files[] = tests/boot.test files[] = tests/bootstrap.test files[] = tests/cache.test files[] = tests/common.test files[] = tests/database_test.test +files[] = tests/entity_crud.test files[] = tests/entity_crud_hook_test.test files[] = tests/entity_query.test files[] = tests/error.test @@ -55,8 +57,7 @@ files[] = tests/upgrade/update.trigger.test files[] = tests/upgrade/update.field.test files[] = tests/upgrade/update.user.test -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/simpletest.module b/site/modules/simpletest/simpletest.module index 3103af0..cf83047 100644 --- a/site/modules/simpletest/simpletest.module +++ b/site/modules/simpletest/simpletest.module @@ -154,7 +154,7 @@ function simpletest_run_tests($test_list, $reporter = 'drupal') { } /** - * Batch operation callback. + * Implements callback_batch_operation(). */ function _simpletest_batch_operation($test_list_init, $test_id, &$context) { simpletest_classloader_register(); @@ -205,6 +205,9 @@ function _simpletest_batch_operation($test_list_init, $test_id, &$context) { $context['finished'] = 1 - $size / $max; } +/** + * Implements callback_batch_finished(). + */ function _simpletest_batch_finished($success, $results, $operations, $elapsed) { if ($success) { drupal_set_message(t('The test run finished in @elapsed.', array('@elapsed' => $elapsed))); @@ -328,25 +331,32 @@ function simpletest_test_get_all() { // Also discover PSR-0 test classes, if the PHP version allows it. if (version_compare(PHP_VERSION, '5.3') > 0) { - // Select all PSR-0 classes in the Tests namespace of all modules. + // Select all PSR-0 and PSR-4 classes in the Tests namespace of all + // modules. $system_list = db_query("SELECT name, filename FROM {system}")->fetchAllKeyed(); foreach ($system_list as $name => $filename) { - // Build directory in which the test files would reside. - $tests_dir = DRUPAL_ROOT . '/' . dirname($filename) . '/lib/Drupal/' . $name . '/Tests'; - // Scan it for test files if it exists. - if (is_dir($tests_dir)) { - $files = file_scan_directory($tests_dir, '/.*\.php/'); - if (!empty($files)) { - $basedir = DRUPAL_ROOT . '/' . dirname($filename) . '/lib/'; - foreach ($files as $file) { - // Convert the file name into the namespaced class name. - $replacements = array( - '/' => '\\', - $basedir => '', - '.php' => '', - ); - $classes[] = strtr($file->uri, $replacements); + $module_dir = DRUPAL_ROOT . '/' . dirname($filename); + // Search both the 'lib/Drupal/mymodule' directory (for PSR-0 classes) + // and the 'src' directory (for PSR-4 classes). + foreach(array('lib/Drupal/' . $name, 'src') as $subdir) { + // Build directory in which the test files would reside. + $tests_dir = $module_dir . '/' . $subdir . '/Tests'; + // Scan it for test files if it exists. + if (is_dir($tests_dir)) { + $files = file_scan_directory($tests_dir, '/.*\.php/'); + if (!empty($files)) { + foreach ($files as $file) { + // Convert the file name into the namespaced class name. + $replacements = array( + '/' => '\\', + $module_dir . '/' => '', + 'lib/' => '', + 'src/' => 'Drupal\\' . $name . '\\', + '.php' => '', + ); + $classes[] = strtr($file->uri, $replacements); + } } } } @@ -364,7 +374,10 @@ function simpletest_test_get_all() { // If this test class requires a non-existing module, skip it. if (!empty($info['dependencies'])) { foreach ($info['dependencies'] as $module) { - if (!drupal_get_filename('module', $module)) { + // Pass FALSE as fourth argument so no error gets created for + // the missing file. + $found_module = drupal_get_filename('module', $module, NULL, FALSE); + if (!$found_module) { continue 2; } } @@ -406,17 +419,20 @@ function simpletest_classloader_register() { // Only register PSR-0 class loading if we are on PHP 5.3 or higher. if (version_compare(PHP_VERSION, '5.3') > 0) { - spl_autoload_register('_simpletest_autoload_psr0'); + spl_autoload_register('_simpletest_autoload_psr4_psr0'); } } /** - * Autoload callback to find PSR-0 test classes. + * Autoload callback to find PSR-4 and PSR-0 test classes. + * + * Looks in the 'src/Tests' and in the 'lib/Drupal/mymodule/Tests' directory of + * modules for the class. * * This will only work on classes where the namespace is of the pattern * "Drupal\$extension\Tests\.." */ -function _simpletest_autoload_psr0($class) { +function _simpletest_autoload_psr4_psr0($class) { // Static cache for extension paths. // This cache is lazily filled as soon as it is needed. @@ -446,14 +462,26 @@ function _simpletest_autoload_psr0($class) { $namespace = substr($class, 0, $nspos); $classname = substr($class, $nspos + 1); - // Build the filepath where we expect the class to be defined. - $path = dirname($extensions[$extension]) . '/lib/' . - str_replace('\\', '/', $namespace) . '/' . + // Try the PSR-4 location first, and the PSR-0 location as a fallback. + // Build the PSR-4 filepath where we expect the class to be defined. + $psr4_path = dirname($extensions[$extension]) . '/src/' . + str_replace('\\', '/', substr($namespace, strlen('Drupal\\' . $extension . '\\'))) . '/' . str_replace('_', '/', $classname) . '.php'; // Include the file, if it does exist. - if (file_exists($path)) { - include $path; + if (file_exists($psr4_path)) { + include $psr4_path; + } + else { + // Build the PSR-0 filepath where we expect the class to be defined. + $psr0_path = dirname($extensions[$extension]) . '/lib/' . + str_replace('\\', '/', $namespace) . '/' . + str_replace('_', '/', $classname) . '.php'; + + // Include the file, if it does exist. + if (file_exists($psr0_path)) { + include $psr0_path; + } } } } @@ -487,25 +515,25 @@ function simpletest_registry_files_alter(&$files, $modules) { * Generate test file. */ function simpletest_generate_file($filename, $width, $lines, $type = 'binary-text') { - $size = $width * $lines - $lines; - - // Generate random text $text = ''; - for ($i = 0; $i < $size; $i++) { - switch ($type) { - case 'text': - $text .= chr(rand(32, 126)); - break; - case 'binary': - $text .= chr(rand(0, 31)); - break; - case 'binary-text': - default: - $text .= rand(0, 1); - break; + for ($i = 0; $i < $lines; $i++) { + // Generate $width - 1 characters to leave space for the "\n" character. + for ($j = 0; $j < $width - 1; $j++) { + switch ($type) { + case 'text': + $text .= chr(rand(32, 126)); + break; + case 'binary': + $text .= chr(rand(0, 31)); + break; + case 'binary-text': + default: + $text .= rand(0, 1); + break; + } } + $text .= "\n"; } - $text = wordwrap($text, $width - 1, "\n", TRUE) . "\n"; // Add \n for symmetrical file. // Create filename. file_put_contents('public://' . $filename . '.txt', $text); diff --git a/site/modules/simpletest/simpletest.test b/site/modules/simpletest/simpletest.test index dde162e..5d1c718 100644 --- a/site/modules/simpletest/simpletest.test +++ b/site/modules/simpletest/simpletest.test @@ -322,6 +322,14 @@ class SimpleTestFunctionalTest extends DrupalWebTestCase { * Test internal testing framework browser. */ class SimpleTestBrowserTestCase extends DrupalWebTestCase { + + /** + * A flag indicating whether a cookie has been set in a test. + * + * @var bool + */ + protected static $cookieSet = FALSE; + public static function getInfo() { return array( 'name' => 'SimpleTest browser', @@ -380,6 +388,46 @@ EOF; $urls = $this->xpath('//a[text()=:text]', array(':text' => 'A second "even more weird" link, in memory of George O\'Malley')); $this->assertEqual($urls[0]['href'], 'link2', 'Match with mixed single and double quotes.'); } + + /** + * Tests that cookies set during a request are available for testing. + */ + public function testCookies() { + // Check that the $this->cookies property is populated when a user logs in. + $user = $this->drupalCreateUser(); + $edit = array('name' => $user->name, 'pass' => $user->pass_raw); + $this->drupalPost('', $edit, t('Log in')); + $this->assertEqual(count($this->cookies), 1, 'A cookie is set when the user logs in.'); + + // Check that the name and value of the cookie match the request data. + $cookie_header = $this->drupalGetHeader('set-cookie', TRUE); + + // The name and value are located at the start of the string, separated by + // an equals sign and ending in a semicolon. + preg_match('/^([^=]+)=([^;]+)/', $cookie_header, $matches); + $name = $matches[1]; + $value = $matches[2]; + + $this->assertTrue(array_key_exists($name, $this->cookies), 'The cookie name is correct.'); + $this->assertEqual($value, $this->cookies[$name]['value'], 'The cookie value is correct.'); + + // Set a flag indicating that a cookie has been set in this test. + // @see SimpleTestBrowserTestCase::testCookieDoesNotBleed(). + self::$cookieSet = TRUE; + } + + /** + * Tests that the cookies from a previous test do not bleed into a new test. + * + * @see SimpleTestBrowserTestCase::testCookies(). + */ + public function testCookieDoesNotBleed() { + // In order for this test to be effective it should always run after the + // testCookies() test. + $this->assertTrue(self::$cookieSet, 'Tests have been executed in the expected order.'); + $this->assertEqual(count($this->cookies), 0, 'No cookies are present at the start of a new test.'); + } + } class SimpleTestMailCaptureTestCase extends DrupalWebTestCase { @@ -703,7 +751,9 @@ class SimpleTestDiscoveryTestCase extends DrupalWebTestCase { $classes_all = simpletest_test_get_all(); foreach (array( 'Drupal\\simpletest\\Tests\\PSR0WebTest', + 'Drupal\\simpletest\\Tests\\PSR4WebTest', 'Drupal\\psr_0_test\\Tests\\ExampleTest', + 'Drupal\\psr_4_test\\Tests\\ExampleTest', ) as $class) { $this->assert(!empty($classes_all['SimpleTest'][$class]), t('Class @class must be discovered by simpletest_test_get_all().', array('@class' => $class))); } @@ -726,15 +776,20 @@ class SimpleTestDiscoveryTestCase extends DrupalWebTestCase { // Don't expect PSR-0 tests to be discovered on older PHP versions. return; } - // This one is provided by simpletest itself via PSR-0. + // These are provided by simpletest itself via PSR-0 and PSR-4. $this->assertText('PSR0 web test'); + $this->assertText('PSR4 web test'); $this->assertText('PSR0 example test: PSR-0 in disabled modules.'); + $this->assertText('PSR4 example test: PSR-4 in disabled modules.'); $this->assertText('PSR0 example test: PSR-0 in nested subfolders.'); + $this->assertText('PSR4 example test: PSR-4 in nested subfolders.'); // Test each test individually. foreach (array( 'Drupal\\psr_0_test\\Tests\\ExampleTest', 'Drupal\\psr_0_test\\Tests\\Nested\\NestedExampleTest', + 'Drupal\\psr_4_test\\Tests\\ExampleTest', + 'Drupal\\psr_4_test\\Tests\\Nested\\NestedExampleTest', ) as $class) { $this->drupalGet('admin/config/development/testing'); $edit = array($class => TRUE); diff --git a/site/modules/simpletest/src/Tests/PSR4WebTest.php b/site/modules/simpletest/src/Tests/PSR4WebTest.php new file mode 100644 index 0000000..24c8d89 --- /dev/null +++ b/site/modules/simpletest/src/Tests/PSR4WebTest.php @@ -0,0 +1,18 @@ + 'PSR4 web test', + 'description' => 'We want to assert that this PSR-4 test case is being discovered.', + 'group' => 'SimpleTest', + ); + } + + function testArithmetics() { + $this->assert(1 + 1 == 2, '1 + 1 == 2'); + } +} diff --git a/site/modules/simpletest/tests/actions_loop_test.info b/site/modules/simpletest/tests/actions_loop_test.info index 7e5a14e..cc0cf53 100644 --- a/site/modules/simpletest/tests/actions_loop_test.info +++ b/site/modules/simpletest/tests/actions_loop_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/ajax.test b/site/modules/simpletest/tests/ajax.test index 664d520..afe0230 100644 --- a/site/modules/simpletest/tests/ajax.test +++ b/site/modules/simpletest/tests/ajax.test @@ -293,7 +293,7 @@ class AJAXCommandsTestCase extends AJAXTestCase { $this->assertCommand($commands, $expected, "'changed' AJAX command (with asterisk) issued with correct selector"); // Tests the 'css' command. - $commands = $this->drupalPostAJAX($form_path, $edit, array('op' => t("Set the the '#box' div to be blue."))); + $commands = $this->drupalPostAJAX($form_path, $edit, array('op' => t("Set the '#box' div to be blue."))); $expected = array( 'command' => 'css', 'selector' => '#css_div', @@ -368,6 +368,14 @@ class AJAXCommandsTestCase extends AJAXTestCase { 'settings' => array('ajax_forms_test' => array('foo' => 42)), ); $this->assertCommand($commands, $expected, "'settings' AJAX command issued with correct data"); + + // Tests the 'add_css' command. + $commands = $this->drupalPostAJAX($form_path, $edit, array('op' => t("AJAX 'add_css' command"))); + $expected = array( + 'command' => 'add_css', + 'data' => 'my/file.css', + ); + $this->assertCommand($commands, $expected, "'add_css' AJAX command issued with correct data"); } } @@ -497,6 +505,85 @@ class AJAXMultiFormTestCase extends AJAXTestCase { } } +/** + * Test Ajax forms when page caching for anonymous users is turned on. + */ +class AJAXFormPageCacheTestCase extends AJAXTestCase { + protected $profile = 'testing'; + + public static function getInfo() { + return array( + 'name' => 'AJAX forms on cached pages', + 'description' => 'Tests that AJAX forms work properly for anonymous users on cached pages.', + 'group' => 'AJAX', + ); + } + + public function setUp() { + parent::setUp(); + + variable_set('cache', TRUE); + } + + /** + * Return the build id of the current form. + */ + protected function getFormBuildId() { + $build_id_fields = $this->xpath('//input[@name="form_build_id"]'); + $this->assertEqual(count($build_id_fields), 1, 'One form build id field on the page'); + return (string) $build_id_fields[0]['value']; + } + + /** + * Create a simple form, then POST to system/ajax to change to it. + */ + public function testSimpleAJAXFormValue() { + $this->drupalGet('ajax_forms_test_get_form'); + $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'MISS', 'Page was not cached.'); + $build_id_initial = $this->getFormBuildId(); + + $edit = array('select' => 'green'); + $commands = $this->drupalPostAJAX(NULL, $edit, 'select'); + $build_id_first_ajax = $this->getFormBuildId(); + $this->assertNotEqual($build_id_initial, $build_id_first_ajax, 'Build id is changed in the simpletest-DOM on first AJAX submission'); + $expected = array( + 'command' => 'updateBuildId', + 'old' => $build_id_initial, + 'new' => $build_id_first_ajax, + ); + $this->assertCommand($commands, $expected, 'Build id change command issued on first AJAX submission'); + + $edit = array('select' => 'red'); + $commands = $this->drupalPostAJAX(NULL, $edit, 'select'); + $build_id_second_ajax = $this->getFormBuildId(); + $this->assertEqual($build_id_first_ajax, $build_id_second_ajax, 'Build id remains the same on subsequent AJAX submissions'); + + // Repeat the test sequence but this time with a page loaded from the cache. + $this->drupalGet('ajax_forms_test_get_form'); + $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'HIT', 'Page was cached.'); + $build_id_from_cache_initial = $this->getFormBuildId(); + $this->assertEqual($build_id_initial, $build_id_from_cache_initial, 'Build id is the same as on the first request'); + + $edit = array('select' => 'green'); + $commands = $this->drupalPostAJAX(NULL, $edit, 'select'); + $build_id_from_cache_first_ajax = $this->getFormBuildId(); + $this->assertNotEqual($build_id_from_cache_initial, $build_id_from_cache_first_ajax, 'Build id is changed in the simpletest-DOM on first AJAX submission'); + $this->assertNotEqual($build_id_first_ajax, $build_id_from_cache_first_ajax, 'Build id from first user is not reused'); + $expected = array( + 'command' => 'updateBuildId', + 'old' => $build_id_from_cache_initial, + 'new' => $build_id_from_cache_first_ajax, + ); + $this->assertCommand($commands, $expected, 'Build id change command issued on first AJAX submission'); + + $edit = array('select' => 'red'); + $commands = $this->drupalPostAJAX(NULL, $edit, 'select'); + $build_id_from_cache_second_ajax = $this->getFormBuildId(); + $this->assertEqual($build_id_from_cache_first_ajax, $build_id_from_cache_second_ajax, 'Build id remains the same on subsequent AJAX submissions'); + } +} + + /** * Miscellaneous Ajax tests using ajax_test module. */ diff --git a/site/modules/simpletest/tests/ajax_forms_test.info b/site/modules/simpletest/tests/ajax_forms_test.info index 5c0dfcf..574b882 100644 --- a/site/modules/simpletest/tests/ajax_forms_test.info +++ b/site/modules/simpletest/tests/ajax_forms_test.info @@ -5,8 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/ajax_forms_test.module b/site/modules/simpletest/tests/ajax_forms_test.module index 2840422..de2fa0b 100644 --- a/site/modules/simpletest/tests/ajax_forms_test.module +++ b/site/modules/simpletest/tests/ajax_forms_test.module @@ -157,7 +157,7 @@ function ajax_forms_test_ajax_commands_form($form, &$form_state) { // Shows the Ajax 'css' command. $form['css_command_example'] = array( - '#value' => t("Set the the '#box' div to be blue."), + '#value' => t("Set the '#box' div to be blue."), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_css_callback', @@ -254,6 +254,15 @@ function ajax_forms_test_ajax_commands_form($form, &$form_state) { ), ); + // Shows the Ajax 'add_css' command. + $form['add_css_command_example'] = array( + '#type' => 'submit', + '#value' => t("AJAX 'add_css' command"), + '#ajax' => array( + 'callback' => 'ajax_forms_test_advanced_commands_add_css_callback', + ), + ); + $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit'), @@ -406,6 +415,15 @@ function ajax_forms_test_advanced_commands_settings_callback($form, $form_state) return array('#type' => 'ajax', '#commands' => $commands); } +/** + * Ajax callback for 'add_css'. + */ +function ajax_forms_test_advanced_commands_add_css_callback($form, $form_state) { + $commands = array(); + $commands[] = ajax_command_add_css('my/file.css'); + return array('#type' => 'ajax', '#commands' => $commands); +} + /** * This form and its related submit and callback functions demonstrate * not validating another form element when a single Ajax element is triggered. diff --git a/site/modules/simpletest/tests/ajax_test.info b/site/modules/simpletest/tests/ajax_test.info index 696fb20..8b6d24e 100644 --- a/site/modules/simpletest/tests/ajax_test.info +++ b/site/modules/simpletest/tests/ajax_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/batch_test.callbacks.inc b/site/modules/simpletest/tests/batch_test.callbacks.inc index 75e6655..6564413 100644 --- a/site/modules/simpletest/tests/batch_test.callbacks.inc +++ b/site/modules/simpletest/tests/batch_test.callbacks.inc @@ -7,6 +7,8 @@ */ /** + * Implements callback_batch_operation(). + * * Simple batch operation. */ function _batch_test_callback_1($id, $sleep, &$context) { @@ -20,6 +22,8 @@ function _batch_test_callback_1($id, $sleep, &$context) { } /** + * Implements callback_batch_operation(). + * * Multistep batch operation. */ function _batch_test_callback_2($start, $total, $sleep, &$context) { @@ -53,6 +57,8 @@ function _batch_test_callback_2($start, $total, $sleep, &$context) { } /** + * Implements callback_batch_operation(). + * * Simple batch operation. */ function _batch_test_callback_5($id, $sleep, &$context) { @@ -68,6 +74,8 @@ function _batch_test_callback_5($id, $sleep, &$context) { } /** + * Implements callback_batch_operation(). + * * Batch operation setting up its own batch. */ function _batch_test_nested_batch_callback() { @@ -76,6 +84,8 @@ function _batch_test_nested_batch_callback() { } /** + * Implements callback_batch_finished(). + * * Common 'finished' callbacks for batches 1 to 4. */ function _batch_test_finished_helper($batch_id, $success, $results, $operations) { @@ -99,6 +109,8 @@ function _batch_test_finished_helper($batch_id, $success, $results, $operations) } /** + * Implements callback_batch_finished(). + * * 'finished' callback for batch 0. */ function _batch_test_finished_0($success, $results, $operations) { @@ -106,6 +118,8 @@ function _batch_test_finished_0($success, $results, $operations) { } /** + * Implements callback_batch_finished(). + * * 'finished' callback for batch 1. */ function _batch_test_finished_1($success, $results, $operations) { @@ -113,6 +127,8 @@ function _batch_test_finished_1($success, $results, $operations) { } /** + * Implements callback_batch_finished(). + * * 'finished' callback for batch 2. */ function _batch_test_finished_2($success, $results, $operations) { @@ -120,6 +136,8 @@ function _batch_test_finished_2($success, $results, $operations) { } /** + * Implements callback_batch_finished(). + * * 'finished' callback for batch 3. */ function _batch_test_finished_3($success, $results, $operations) { @@ -127,6 +145,8 @@ function _batch_test_finished_3($success, $results, $operations) { } /** + * Implements callback_batch_finished(). + * * 'finished' callback for batch 4. */ function _batch_test_finished_4($success, $results, $operations) { @@ -134,6 +154,8 @@ function _batch_test_finished_4($success, $results, $operations) { } /** + * Implements callback_batch_finished(). + * * 'finished' callback for batch 5. */ function _batch_test_finished_5($success, $results, $operations) { diff --git a/site/modules/simpletest/tests/batch_test.info b/site/modules/simpletest/tests/batch_test.info index 1e46847..b090330 100644 --- a/site/modules/simpletest/tests/batch_test.info +++ b/site/modules/simpletest/tests/batch_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/boot.test b/site/modules/simpletest/tests/boot.test new file mode 100644 index 0000000..562b082 --- /dev/null +++ b/site/modules/simpletest/tests/boot.test @@ -0,0 +1,38 @@ + 'Early bootstrap test', + 'description' => 'Confirm that calling module_implements() during early bootstrap does not pollute the module_implements() cache.', + 'group' => 'System', + ); + } + + function setUp() { + parent::setUp('boot_test_1', 'boot_test_2'); + } + + /** + * Test hook_boot() on both regular and "early exit" pages. + */ + public function testHookBoot() { + $paths = array('', 'early_exit'); + foreach ($paths as $path) { + // Empty the module_implements() caches. + module_implements(NULL, FALSE, TRUE); + // Do a request to the front page, which will call module_implements() + // during hook_boot(). + $this->drupalGet($path); + // Reset the static cache so we get implementation data from the persistent + // cache. + drupal_static_reset(); + // Make sure we get a full list of all modules implementing hook_help(). + $modules = module_implements('help'); + $this->assertTrue(in_array('boot_test_2', $modules)); + } + } +} diff --git a/site/modules/simpletest/tests/boot_test_1.info b/site/modules/simpletest/tests/boot_test_1.info new file mode 100644 index 0000000..ec2a28a --- /dev/null +++ b/site/modules/simpletest/tests/boot_test_1.info @@ -0,0 +1,11 @@ +name = Early bootstrap tests +description = A support module for hook_boot testing. +core = 7.x +package = Testing +version = VERSION +hidden = TRUE + +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" +project = "drupal" +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/boot_test_1.module b/site/modules/simpletest/tests/boot_test_1.module new file mode 100644 index 0000000..a452e28 --- /dev/null +++ b/site/modules/simpletest/tests/boot_test_1.module @@ -0,0 +1,21 @@ +proxy_ip; + $_SERVER['HTTP_X_FORWARDED_FOR'] = $this->proxy_ip; + drupal_static_reset('ip_address'); + $this->assertTrue( + ip_address() == $this->proxy_ip, + 'Visiting from trusted proxy got proxy IP address.' + ); + // Multi-tier architecture with comma separated values in header. $_SERVER['REMOTE_ADDR'] = $this->proxy_ip; $_SERVER['HTTP_X_FORWARDED_FOR'] = implode(', ', array($this->untrusted_ip, $this->forwarded_ip, $this->proxy2_ip)); @@ -93,6 +102,11 @@ class BootstrapIPAddressTestCase extends DrupalWebTestCase { $this->assertFalse(drupal_valid_http_host('security\\.drupal.org:80'), 'HTTP_HOST with \\ is invalid'); $this->assertFalse(drupal_valid_http_host('security<.drupal.org:80'), 'HTTP_HOST with < is invalid'); $this->assertFalse(drupal_valid_http_host('security..drupal.org:80'), 'HTTP_HOST with .. is invalid'); + // Verifies that host names are shorter than 1000 characters. + $this->assertFalse(drupal_valid_http_host(str_repeat('x', 1001)), 'HTTP_HOST with more than 1000 characters is invalid.'); + $this->assertFalse(drupal_valid_http_host(str_repeat('.', 101)), 'HTTP_HOST with more than 100 subdomains is invalid.'); + $this->assertFalse(drupal_valid_http_host(str_repeat(':', 101)), 'HTTP_HOST with more than 100 portseparators is invalid.'); + // IPv6 loopback address $this->assertTrue(drupal_valid_http_host('[::1]:80'), 'HTTP_HOST containing IPv6 loopback is valid'); } @@ -139,7 +153,7 @@ class BootstrapPageCacheTestCase extends DrupalWebTestCase { $this->assertResponse(200, 'Conditional request without If-None-Match returned 200 OK.'); $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'HIT', 'Page was cached.'); - $this->drupalGet('', array(), array('If-Modified-Since: ' . gmdate(DATE_RFC1123, strtotime($last_modified) + 1), 'If-None-Match: ' . $etag)); + $this->drupalGet('', array(), array('If-Modified-Since: ' . gmdate(DATE_RFC7231, strtotime($last_modified) + 1), 'If-None-Match: ' . $etag)); $this->assertResponse(200, 'Conditional request with new a If-Modified-Since date newer than Last-Modified returned 200 OK.'); $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'HIT', 'Page was cached.'); @@ -147,7 +161,9 @@ class BootstrapPageCacheTestCase extends DrupalWebTestCase { $this->drupalLogin($user); $this->drupalGet('', array(), array('If-Modified-Since: ' . $last_modified, 'If-None-Match: ' . $etag)); $this->assertResponse(200, 'Conditional request returned 200 OK for authenticated user.'); - $this->assertFalse($this->drupalGetHeader('X-Drupal-Cache'), 'Absense of Page was not cached.'); + $this->assertFalse($this->drupalGetHeader('X-Drupal-Cache'), 'Absence of Page was not cached.'); + $this->assertFalse($this->drupalGetHeader('ETag'), 'ETag HTTP headers are not present for logged in users.'); + $this->assertFalse($this->drupalGetHeader('Last-Modified'), 'Last-Modified HTTP headers are not present for logged in users.'); } /** @@ -184,7 +200,7 @@ class BootstrapPageCacheTestCase extends DrupalWebTestCase { $this->drupalGet('system-test/set-header', array('query' => array('name' => 'Foo', 'value' => 'bar'))); $this->assertFalse($this->drupalGetHeader('X-Drupal-Cache'), 'Caching was bypassed.'); $this->assertTrue(strpos($this->drupalGetHeader('Vary'), 'Cookie') === FALSE, 'Vary: Cookie header was not sent.'); - $this->assertEqual($this->drupalGetHeader('Cache-Control'), 'no-cache, must-revalidate, post-check=0, pre-check=0', 'Cache-Control header was sent.'); + $this->assertEqual($this->drupalGetHeader('Cache-Control'), 'no-cache, must-revalidate', 'Cache-Control header was sent.'); $this->assertEqual($this->drupalGetHeader('Expires'), 'Sun, 19 Nov 1978 05:00:00 GMT', 'Expires header was sent.'); $this->assertEqual($this->drupalGetHeader('Foo'), 'bar', 'Custom header was sent.'); @@ -219,6 +235,18 @@ class BootstrapPageCacheTestCase extends DrupalWebTestCase { $this->assertFalse($this->drupalGetHeader('Content-Encoding'), 'A Content-Encoding header was not sent.'); $this->assertTitle(t('Welcome to @site-name | @site-name', array('@site-name' => variable_get('site_name', 'Drupal'))), 'Site title matches.'); $this->assertRaw('', 'Page was not compressed.'); + + // Disable compression mode. + variable_set('page_compression', FALSE); + + // Verify if cached page is still available for a client with compression support. + $this->drupalGet('', array(), array('Accept-Encoding: gzip,deflate')); + $this->drupalSetContent(gzinflate(substr($this->drupalGetContent(), 10, -8))); + $this->assertRaw('', 'Page was delivered after compression mode is changed (compression support enabled).'); + + // Verify if cached page is still available for a client without compression support. + $this->drupalGet(''); + $this->assertRaw('', 'Page was delivered after compression mode is changed (compression support disabled).'); } } @@ -269,6 +297,39 @@ class BootstrapVariableTestCase extends DrupalWebTestCase { } +/** + * Tests the auto-loading behavior of the code registry. + */ +class BootstrapAutoloadTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Code registry', + 'description' => 'Test that the code registry functions correctly.', + 'group' => 'Bootstrap', + ); + } + + function setUp() { + parent::setUp('drupal_autoload_test'); + } + + /** + * Tests that autoloader name matching is not case sensitive. + */ + function testAutoloadCase() { + // Test interface autoloader. + $this->assertTrue(drupal_autoload_interface('drupalautoloadtestinterface'), 'drupal_autoload_interface() recognizes DrupalAutoloadTestInterface in lower case.'); + // Test class autoloader. + $this->assertTrue(drupal_autoload_class('drupalautoloadtestclass'), 'drupal_autoload_class() recognizes DrupalAutoloadTestClass in lower case.'); + // Test trait autoloader. + if (version_compare(PHP_VERSION, '5.4') >= 0) { + $this->assertTrue(drupal_autoload_trait('drupalautoloadtesttrait'), 'drupal_autoload_trait() recognizes DrupalAutoloadTestTrait in lower case.'); + } + } + +} + /** * Test hook_boot() and hook_exit(). */ @@ -327,12 +388,19 @@ class BootstrapGetFilenameTestCase extends DrupalUnitTestCase { public static function getInfo() { return array( - 'name' => 'Get filename test', - 'description' => 'Test that drupal_get_filename() works correctly when the file is not found in the database.', + 'name' => 'Get filename test (without the system table)', + 'description' => 'Test that drupal_get_filename() works correctly when the database is not available.', 'group' => 'Bootstrap', ); } + /** + * The last file-related error message triggered by the filename test. + * + * Used by BootstrapGetFilenameTestCase::testDrupalGetFilename(). + */ + protected $getFilenameTestTriggeredError; + /** * Test that drupal_get_filename() works correctly when the file is not found in the database. */ @@ -362,6 +430,203 @@ class BootstrapGetFilenameTestCase extends DrupalUnitTestCase { // automatically check there for 'script' files, just as it does for (e.g.) // 'module' files in modules. $this->assertIdentical(drupal_get_filename('script', 'test'), 'scripts/test.script', t('Retrieve test script location.')); + + // When searching for a module that does not exist, drupal_get_filename() + // should return NULL and trigger an appropriate error message. + $this->getFilenameTestTriggeredError = NULL; + set_error_handler(array($this, 'fileNotFoundErrorHandler')); + $non_existing_module = $this->randomName(); + $this->assertNull(drupal_get_filename('module', $non_existing_module), 'Searching for a module that does not exist returns NULL.'); + $this->assertTrue(strpos($this->getFilenameTestTriggeredError, format_string('The following module is missing from the file system: %name', array('%name' => $non_existing_module))) === 0, 'Searching for an item that does not exist triggers the correct error.'); + restore_error_handler(); + + // Check that the result is stored in the file system scan cache. + $file_scans = _drupal_file_scan_cache(); + $this->assertIdentical($file_scans['module'][$non_existing_module], FALSE, 'Searching for a module that does not exist creates a record in the missing and moved files static variable.'); + + // Performing the search again in the same request still should not find + // the file, but the error message should not be repeated (therefore we do + // not override the error handler here). + $this->assertNull(drupal_get_filename('module', $non_existing_module), 'Searching for a module that does not exist returns NULL during the second search.'); + } + + /** + * Skips handling of "file not found" errors. + */ + public function fileNotFoundErrorHandler($error_level, $message, $filename, $line, $context) { + // Skip error handling if this is a "file not found" error. + if (strpos($message, 'is missing from the file system:') !== FALSE || strpos($message, 'has moved within the file system:') !== FALSE) { + $this->getFilenameTestTriggeredError = $message; + return; + } + _drupal_error_handler($error_level, $message, $filename, $line, $context); + } +} + +/** + * Test drupal_get_filename() in the context of a full Drupal installation. + */ +class BootstrapGetFilenameWebTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Get filename test (full installation)', + 'description' => 'Test that drupal_get_filename() works correctly in the context of a full Drupal installation.', + 'group' => 'Bootstrap', + ); + } + + function setUp() { + parent::setUp('system_test'); + } + + /** + * The last file-related error message triggered by the filename test. + * + * Used by BootstrapGetFilenameWebTestCase::testDrupalGetFilename(). + */ + protected $getFilenameTestTriggeredError; + + /** + * Test that drupal_get_filename() works correctly with a full Drupal site. + */ + function testDrupalGetFilename() { + // Search for a module that exists in the file system and the {system} + // table and make sure that it is found. + $this->assertIdentical(drupal_get_filename('module', 'node'), 'modules/node/node.module', 'Module found at expected location.'); + + // Search for a module that does not exist in either the file system or the + // {system} table. Make sure that an appropriate error is triggered and + // that the module winds up in the static and persistent cache. + $this->getFilenameTestTriggeredError = NULL; + set_error_handler(array($this, 'fileNotFoundErrorHandler')); + $non_existing_module = $this->randomName(); + $this->assertNull(drupal_get_filename('module', $non_existing_module), 'Searching for a module that does not exist returns NULL.'); + $this->assertTrue(strpos($this->getFilenameTestTriggeredError, format_string('The following module is missing from the file system: %name', array('%name' => $non_existing_module))) === 0, 'Searching for a module that does not exist triggers the correct error.'); + restore_error_handler(); + $file_scans = _drupal_file_scan_cache(); + $this->assertIdentical($file_scans['module'][$non_existing_module], FALSE, 'Searching for a module that does not exist creates a record in the missing and moved files static variable.'); + drupal_file_scan_write_cache(); + $cache = cache_get('_drupal_file_scan_cache', 'cache_bootstrap'); + $this->assertIdentical($cache->data['module'][$non_existing_module], FALSE, 'Searching for a module that does not exist creates a record in the missing and moved files persistent cache.'); + + // Simulate moving a module to a location that does not match the location + // in the {system} table and perform similar tests as above. + db_update('system') + ->fields(array('filename' => 'modules/simpletest/tests/fake_location/module_test.module')) + ->condition('name', 'module_test') + ->condition('type', 'module') + ->execute(); + $this->getFilenameTestTriggeredError = NULL; + set_error_handler(array($this, 'fileNotFoundErrorHandler')); + $this->assertIdentical(drupal_get_filename('module', 'module_test'), 'modules/simpletest/tests/module_test.module', 'Searching for a module that has moved finds the module at its new location.'); + $this->assertTrue(strpos($this->getFilenameTestTriggeredError, format_string('The following module has moved within the file system: %name', array('%name' => 'module_test'))) === 0, 'Searching for a module that has moved triggers the correct error.'); + restore_error_handler(); + $file_scans = _drupal_file_scan_cache(); + $this->assertIdentical($file_scans['module']['module_test'], 'modules/simpletest/tests/module_test.module', 'Searching for a module that has moved creates a record in the missing and moved files static variable.'); + drupal_file_scan_write_cache(); + $cache = cache_get('_drupal_file_scan_cache', 'cache_bootstrap'); + $this->assertIdentical($cache->data['module']['module_test'], 'modules/simpletest/tests/module_test.module', 'Searching for a module that has moved creates a record in the missing and moved files persistent cache.'); + + // Simulate a module that exists in the {system} table but does not exist + // in the file system and perform similar tests as above. + $non_existing_module = $this->randomName(); + db_update('system') + ->fields(array('name' => $non_existing_module)) + ->condition('name', 'module_test') + ->condition('type', 'module') + ->execute(); + $this->getFilenameTestTriggeredError = NULL; + set_error_handler(array($this, 'fileNotFoundErrorHandler')); + $this->assertNull(drupal_get_filename('module', $non_existing_module), 'Searching for a module that exists in the system table but not in the file system returns NULL.'); + $this->assertTrue(strpos($this->getFilenameTestTriggeredError, format_string('The following module is missing from the file system: %name', array('%name' => $non_existing_module))) === 0, 'Searching for a module that exists in the system table but not in the file system triggers the correct error.'); + restore_error_handler(); + $file_scans = _drupal_file_scan_cache(); + $this->assertIdentical($file_scans['module'][$non_existing_module], FALSE, 'Searching for a module that exists in the system table but not in the file system creates a record in the missing and moved files static variable.'); + drupal_file_scan_write_cache(); + $cache = cache_get('_drupal_file_scan_cache', 'cache_bootstrap'); + $this->assertIdentical($cache->data['module'][$non_existing_module], FALSE, 'Searching for a module that exists in the system table but not in the file system creates a record in the missing and moved files persistent cache.'); + + // Simulate a module that exists in the file system but not in the {system} + // table and perform similar tests as above. + db_delete('system') + ->condition('name', 'common_test') + ->condition('type', 'module') + ->execute(); + system_list_reset(); + $this->getFilenameTestTriggeredError = NULL; + set_error_handler(array($this, 'fileNotFoundErrorHandler')); + $this->assertIdentical(drupal_get_filename('module', 'common_test'), 'modules/simpletest/tests/common_test.module', 'Searching for a module that does not exist in the system table finds the module at its actual location.'); + $this->assertTrue(strpos($this->getFilenameTestTriggeredError, format_string('The following module has moved within the file system: %name', array('%name' => 'common_test'))) === 0, 'Searching for a module that does not exist in the system table triggers the correct error.'); + restore_error_handler(); + $file_scans = _drupal_file_scan_cache(); + $this->assertIdentical($file_scans['module']['common_test'], 'modules/simpletest/tests/common_test.module', 'Searching for a module that does not exist in the system table creates a record in the missing and moved files static variable.'); + drupal_file_scan_write_cache(); + $cache = cache_get('_drupal_file_scan_cache', 'cache_bootstrap'); + $this->assertIdentical($cache->data['module']['common_test'], 'modules/simpletest/tests/common_test.module', 'Searching for a module that does not exist in the system table creates a record in the missing and moved files persistent cache.'); + } + + /** + * Skips handling of "file not found" errors. + */ + public function fileNotFoundErrorHandler($error_level, $message, $filename, $line, $context) { + // Skip error handling if this is a "file not found" error. + if (strpos($message, 'is missing from the file system:') !== FALSE || strpos($message, 'has moved within the file system:') !== FALSE) { + $this->getFilenameTestTriggeredError = $message; + return; + } + _drupal_error_handler($error_level, $message, $filename, $line, $context); + } + + /** + * Test that watchdog messages about missing files are correctly recorded. + */ + public function testWatchdog() { + // Search for a module that does not exist in either the file system or the + // {system} table. Make sure that an appropriate warning is recorded in the + // logs. + $non_existing_module = $this->randomName(); + $query_parameters = array( + ':type' => 'php', + ':severity' => WATCHDOG_WARNING, + ); + $this->assertEqual(db_query('SELECT COUNT(*) FROM {watchdog} WHERE type = :type AND severity = :severity', $query_parameters)->fetchField(), 0, 'No warning message appears in the logs before searching for a module that does not exist.'); + // Trigger the drupal_get_filename() call. This must be done via a request + // to a separate URL since the watchdog() will happen in a shutdown + // function, and so that SimpleTest can be told to ignore (and not fail as + // a result of) the expected PHP warnings generated during this process. + variable_set('system_test_drupal_get_filename_test_module_name', $non_existing_module); + $this->drupalGet('system-test/drupal-get-filename'); + $message_variables = db_query('SELECT variables FROM {watchdog} WHERE type = :type AND severity = :severity', $query_parameters)->fetchCol(); + $this->assertEqual(count($message_variables), 1, 'A single warning message appears in the logs after searching for a module that does not exist.'); + $variables = reset($message_variables); + $variables = unserialize($variables); + $this->assertTrue(isset($variables['!message']) && strpos($variables['!message'], format_string('The following module is missing from the file system: %name', array('%name' => $non_existing_module))) !== FALSE, 'The warning message that appears in the logs after searching for a module that does not exist contains the expected text.'); + } + + /** + * Test that drupal_get_filename() does not break recursive rebuilds. + */ + public function testRecursiveRebuilds() { + // Ensure that the drupal_get_filename() call due to a missing module does + // not break the data returned by an attempted recursive rebuild. The code + // path which is tested is as follows: + // - Call drupal_get_schema(). + // - Within a hook_schema() implementation, trigger a drupal_get_filename() + // search for a nonexistent module. + // - In the watchdog() call that results from that, trigger + // drupal_get_schema() again. + // Without some kind of recursion protection, this could cause the second + // drupal_get_schema() call to return incomplete results. This test ensures + // that does not happen. + $non_existing_module = $this->randomName(); + variable_set('system_test_drupal_get_filename_test_module_name', $non_existing_module); + $this->drupalGet('system-test/drupal-get-filename-with-schema-rebuild'); + $original_drupal_get_schema_tables = variable_get('system_test_drupal_get_filename_with_schema_rebuild_original_tables'); + $final_drupal_get_schema_tables = variable_get('system_test_drupal_get_filename_with_schema_rebuild_final_tables'); + $this->assertTrue(!empty($original_drupal_get_schema_tables)); + $this->assertTrue(!empty($final_drupal_get_schema_tables)); + $this->assertEqual($original_drupal_get_schema_tables, $final_drupal_get_schema_tables); } } @@ -529,3 +794,85 @@ class BootstrapOverrideServerVariablesTestCase extends DrupalUnitTestCase { } } } + +/** + * Tests for $_GET['destination'] and $_REQUEST['destination'] validation. + */ +class BootstrapDestinationTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'URL destination validation', + 'description' => 'Test that $_GET[\'destination\'] and $_REQUEST[\'destination\'] cannot contain external URLs.', + 'group' => 'Bootstrap', + ); + } + + function setUp() { + parent::setUp('system_test'); + } + + /** + * Tests that $_GET/$_REQUEST['destination'] only contain internal URLs. + * + * @see _drupal_bootstrap_variables() + * @see system_test_get_destination() + * @see system_test_request_destination() + */ + public function testDestination() { + $test_cases = array( + array( + 'input' => 'node', + 'output' => 'node', + 'message' => "Standard internal example node path is present in the 'destination' parameter.", + ), + array( + 'input' => '/example.com', + 'output' => '/example.com', + 'message' => 'Internal path with one leading slash is allowed.', + ), + array( + 'input' => '//example.com/test', + 'output' => '', + 'message' => 'External URL without scheme is not allowed.', + ), + array( + 'input' => 'example:test', + 'output' => 'example:test', + 'message' => 'Internal URL using a colon is allowed.', + ), + array( + 'input' => 'http://example.com', + 'output' => '', + 'message' => 'External URL is not allowed.', + ), + array( + 'input' => 'javascript:alert(0)', + 'output' => 'javascript:alert(0)', + 'message' => 'Javascript URL is allowed because it is treated as an internal URL.', + ), + ); + foreach ($test_cases as $test_case) { + // Test $_GET['destination']. + $this->drupalGet('system-test/get-destination', array('query' => array('destination' => $test_case['input']))); + $this->assertIdentical($test_case['output'], $this->drupalGetContent(), $test_case['message']); + // Test $_REQUEST['destination']. There's no form to submit to, so + // drupalPost() won't work here; this just tests a direct $_POST request + // instead. + $curl_parameters = array( + CURLOPT_URL => $this->getAbsoluteUrl('system-test/request-destination'), + CURLOPT_POST => TRUE, + CURLOPT_POSTFIELDS => 'destination=' . urlencode($test_case['input']), + CURLOPT_HTTPHEADER => array(), + ); + $post_output = $this->curlExec($curl_parameters); + $this->assertIdentical($test_case['output'], $post_output, $test_case['message']); + } + + // Make sure that 404 pages do not populate $_GET['destination'] with + // external URLs. + variable_set('site_404', 'system-test/get-destination'); + $this->drupalGet('http://example.com', array('external' => FALSE)); + $this->assertIdentical('', $this->drupalGetContent(), 'External URL is not allowed on 404 pages.'); + } +} diff --git a/site/modules/simpletest/tests/common.test b/site/modules/simpletest/tests/common.test index 8694ff3..0490dd5 100644 --- a/site/modules/simpletest/tests/common.test +++ b/site/modules/simpletest/tests/common.test @@ -76,7 +76,7 @@ class DrupalAlterTestCase extends DrupalWebTestCase { class CommonURLUnitTest extends DrupalWebTestCase { public static function getInfo() { return array( - 'name' => 'URL generation tests', + 'name' => 'URL generation unit tests', 'description' => 'Confirm that url(), drupal_get_query_parameters(), drupal_http_build_query(), and l() work correctly with various input.', 'group' => 'System', ); @@ -169,7 +169,7 @@ class CommonURLUnitTest extends DrupalWebTestCase { $this->assertEqual(drupal_http_build_query(array('a' => ' &#//+%20@۞')), 'a=%20%26%23//%2B%2520%40%DB%9E', 'Value was properly encoded.'); $this->assertEqual(drupal_http_build_query(array(' &#//+%20@۞' => 'a')), '%20%26%23%2F%2F%2B%2520%40%DB%9E=a', 'Key was properly encoded.'); $this->assertEqual(drupal_http_build_query(array('a' => '1', 'b' => '2', 'c' => '3')), 'a=1&b=2&c=3', 'Multiple values were properly concatenated.'); - $this->assertEqual(drupal_http_build_query(array('a' => array('b' => '2', 'c' => '3'), 'd' => 'foo')), 'a[b]=2&a[c]=3&d=foo', 'Nested array was properly encoded.'); + $this->assertEqual(drupal_http_build_query(array('a' => array('b' => '2', 'c' => '3'), 'd' => 'foo')), 'a%5Bb%5D=2&a%5Bc%5D=3&d=foo', 'Nested array was properly encoded.'); } /** @@ -209,7 +209,16 @@ class CommonURLUnitTest extends DrupalWebTestCase { // Test that drupal can recognize an absolute URL. Used to prevent attack vectors. $this->assertTrue(url_is_external($url), 'Correctly identified an external URL.'); + // External URL without an explicit protocol. + $url = '//drupal.org/foo/bar?foo=bar&bar=baz&baz#foo'; + $this->assertTrue(url_is_external($url), 'Correctly identified an external URL without a protocol part.'); + + // Internal URL starting with a slash. + $url = '/drupal.org'; + $this->assertFalse(url_is_external($url), 'Correctly identified an internal URL with a leading slash.'); + // Test the parsing of absolute URLs. + $url = 'http://drupal.org/foo/bar?foo=bar&bar=baz&baz#foo'; $result = array( 'path' => 'http://drupal.org/foo/bar', 'query' => array('foo' => 'bar', 'bar' => 'baz', 'baz' => ''), @@ -349,6 +358,108 @@ class CommonURLUnitTest extends DrupalWebTestCase { $query = array($this->randomName(5) => $this->randomName(5)); $result = url($url, array('query' => $query)); $this->assertEqual($url . '&' . http_build_query($query, '', '&'), $result, 'External URL query string can be extended with a custom query string in $options.'); + + // Verify that an internal URL does not result in an external URL without + // protocol part. + $url = '/drupal.org'; + $result = url($url); + $this->assertTrue(strpos($result, '//') === FALSE, 'Internal URL does not turn into an external URL.'); + + // Verify that an external URL without protocol part is recognized as such. + $url = '//drupal.org'; + $result = url($url); + $this->assertEqual($url, $result, 'External URL without protocol is not altered.'); + } +} + +/** + * Web tests for URL generation functions. + */ +class CommonURLWebTest extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'URL generation web tests', + 'description' => 'Confirm that URL-generating functions work correctly on specific site paths.', + 'group' => 'System', + ); + } + + function setUp() { + parent::setUp('common_test'); + } + + /** + * Tests the url() function on internal paths which mimic external URLs. + */ + function testInternalPathMimicsExternal() { + // Ensure that calling url(current_path()) on "/http://example.com" (an + // internal path which mimics an external URL) always links to the internal + // path, not the external URL. This helps protect against external URL link + // injection vulnerabilities. + variable_set('common_test_link_to_current_path', TRUE); + $this->drupalGet('/http://example.com'); + $this->clickLink('link which should point to the current path'); + $this->assertUrl('/http://example.com'); + $this->assertText('link which should point to the current path'); + } +} + +/** + * Tests url_is_external(). + */ +class UrlIsExternalUnitTest extends DrupalUnitTestCase { + + public static function getInfo() { + return array( + 'name' => 'External URL checking', + 'description' => 'Performs tests on url_is_external().', + 'group' => 'System', + ); + } + + /** + * Tests if each URL is external or not. + */ + function testUrlIsExternal() { + foreach ($this->examples() as $path => $expected) { + $this->assertIdentical(url_is_external($path), $expected, $path); + } + } + + /** + * Provides data for testUrlIsExternal(). + * + * @return array + * An array of test data, keyed by a path, with the expected value where + * TRUE is external, and FALSE is not external. + */ + protected function examples() { + return array( + // Simple external URLs. + 'http://example.com' => TRUE, + 'https://example.com' => TRUE, + 'http://drupal.org/foo/bar?foo=bar&bar=baz&baz#foo' => TRUE, + '//drupal.org' => TRUE, + // Some browsers ignore or strip leading control characters. + "\x00//www.example.com" => TRUE, + "\x08//www.example.com" => TRUE, + "\x1F//www.example.com" => TRUE, + "\n//www.example.com" => TRUE, + // JSON supports decoding directly from UTF-8 code points. + json_decode('"\u00AD"') . "//www.example.com" => TRUE, + json_decode('"\u200E"') . "//www.example.com" => TRUE, + json_decode('"\uE0020"') . "//www.example.com" => TRUE, + json_decode('"\uE000"') . "//www.example.com" => TRUE, + // Backslashes should be normalized to forward. + '\\\\example.com' => TRUE, + // Local URLs. + 'node' => FALSE, + '/system/ajax' => FALSE, + '?q=foo:bar' => FALSE, + 'node/edit:me' => FALSE, + '/drupal.org' => FALSE, + '' => FALSE, + ); } } @@ -661,6 +772,10 @@ class CascadingStylesheetsTestCase extends DrupalWebTestCase { drupal_add_css($css); $styles = drupal_get_css(); $this->assertTrue(strpos($styles, $css) > 0, 'Rendered CSS includes the added stylesheet.'); + // Verify that newlines are properly added inside style tags. + $query_string = variable_get('css_js_query_string', '0'); + $css_processed = ""; + $this->assertEqual(trim($styles), $css_processed, 'Rendered CSS includes newlines inside style tags for JavaScript use.'); } /** @@ -686,6 +801,31 @@ class CascadingStylesheetsTestCase extends DrupalWebTestCase { $this->assertEqual(trim($styles), $css_preprocessed, 'Rendering preprocessed inline CSS adds it to the page.'); } + /** + * Tests removing charset when rendering stylesheets with preprocessing on. + */ + function testRenderRemoveCharsetPreprocess() { + $cases = array( + array( + 'asset' => '@charset "UTF-8";html{font-family:"sans-serif";}', + 'expected' => 'html{font-family:"sans-serif";}', + ), + // This asset contains extra \n character. + array( + 'asset' => "@charset 'UTF-8';\nhtml{font-family:'sans-serif';}", + 'expected' => "\nhtml{font-family:'sans-serif';}", + ), + ); + + foreach ($cases as $case) { + $this->assertEqual( + $case['expected'], + drupal_load_stylesheet_content($case['asset']), + 'CSS optimizing correctly removes the charset declaration.' + ); + } + } + /** * Tests rendering inline stylesheets with preprocessing off. */ @@ -839,6 +979,31 @@ class DrupalHTMLIdentifierTestCase extends DrupalUnitTestCase { // Verify that invalid characters (including non-breaking space) are stripped from the identifier. $this->assertIdentical(drupal_clean_css_identifier('invalid !"#$%&\'()*+,./:;<=>?@[\\]^`{|}~ identifier', array()), 'invalididentifier', 'Strip invalid characters.'); + + // Verify that double underscores are replaced in the identifier by default. + $identifier = 'css__identifier__with__double__underscores'; + $expected = 'css--identifier--with--double--underscores'; + $this->assertIdentical(drupal_clean_css_identifier($identifier), $expected, 'Verify double underscores are replaced with double hyphens by default.'); + + // Verify that double underscores are preserved in the identifier if the + // variable allow_css_double_underscores is set to TRUE. + $this->setAllowCSSDoubleUnderscores(TRUE); + $this->assertIdentical(drupal_clean_css_identifier($identifier), $identifier, 'Verify double underscores are preserved if the allow_css_double_underscores set to TRUE.'); + + // To avoid affecting other test cases, set the variable + // allow_css_double_underscores to FALSE which is the default value. + $this->setAllowCSSDoubleUnderscores(FALSE); + } + + /** + * Set the variable allow_css_double_underscores and reset the cache. + * + * @param $value bool + * A new value to be set to allow_css_double_underscores. + */ + function setAllowCSSDoubleUnderscores($value) { + $GLOBALS['conf']['allow_css_double_underscores'] = $value; + drupal_static_reset('drupal_clean_css_identifier:allow_css_double_underscores'); } /** @@ -889,9 +1054,11 @@ class CascadingStylesheetsUnitTest extends DrupalUnitTestCase { * Tests basic CSS loading with and without optimization via drupal_load_stylesheet(). * * Known tests: - * - Retain white-space in selectors. (http://drupal.org/node/472820) - * - Proper URLs in imported files. (http://drupal.org/node/265719) - * - Retain pseudo-selectors. (http://drupal.org/node/460448) + * - Retain white-space in selectors. (https://drupal.org/node/472820) + * - Proper URLs in imported files. (https://drupal.org/node/265719) + * - Retain pseudo-selectors. (https://drupal.org/node/460448) + * - Don't adjust data URIs. (https://drupal.org/node/2142441) + * - Files imported from external URLs. (https://drupal.org/node/2014851) */ function testLoadCssBasic() { // Array of files to test living in 'simpletest/files/css_test_files/'. @@ -901,26 +1068,30 @@ class CascadingStylesheetsUnitTest extends DrupalUnitTestCase { $testfiles = array( 'css_input_without_import.css', 'css_input_with_import.css', + 'css_subfolder/css_input_with_import.css', 'comment_hacks.css' ); $path = drupal_get_path('module', 'simpletest') . '/files/css_test_files'; foreach ($testfiles as $file) { - $expected = file_get_contents("$path/$file.unoptimized.css"); - $unoptimized_output = drupal_load_stylesheet("$path/$file.unoptimized.css", FALSE); + $file_path = $path . '/' . $file; + $file_url = $GLOBALS['base_url'] . '/' . $file_path; + + $expected = file_get_contents($file_path . '.unoptimized.css'); + $unoptimized_output = drupal_load_stylesheet($file_path, FALSE); $this->assertEqual($unoptimized_output, $expected, format_string('Unoptimized CSS file has expected contents (@file)', array('@file' => $file))); - $expected = file_get_contents("$path/$file.optimized.css"); - $optimized_output = drupal_load_stylesheet("$path/$file", TRUE); + $expected = file_get_contents($file_path . '.optimized.css'); + $optimized_output = drupal_load_stylesheet($file_path, TRUE); $this->assertEqual($optimized_output, $expected, format_string('Optimized CSS file has expected contents (@file)', array('@file' => $file))); // Repeat the tests by accessing the stylesheets by URL. - $expected = file_get_contents("$path/$file.unoptimized.css"); - $unoptimized_output_url = drupal_load_stylesheet($GLOBALS['base_url'] . "/$path/$file.unoptimized.css", FALSE); - $this->assertEqual($unoptimized_output, $expected, format_string('Unoptimized CSS file (loaded from an URL) has expected contents (@file)', array('@file' => $file))); + $expected = file_get_contents($file_path . '.unoptimized.css'); + $unoptimized_output_url = drupal_load_stylesheet($file_url, FALSE); + $this->assertEqual($unoptimized_output_url, $expected, format_string('Unoptimized CSS file (loaded from an URL) has expected contents (@file)', array('@file' => $file))); - $expected = file_get_contents("$path/$file.optimized.css"); - $optimized_output = drupal_load_stylesheet($GLOBALS['base_url'] . "/$path/$file", TRUE); - $this->assertEqual($optimized_output, $expected, format_string('Optimized CSS file (loaded from an URL) has expected contents (@file)', array('@file' => $file))); + $expected = file_get_contents($file_path . '.optimized.css'); + $optimized_output_url = drupal_load_stylesheet($file_url, TRUE); + $this->assertEqual($optimized_output_url, $expected, format_string('Optimized CSS file (loaded from an URL) has expected contents (@file)', array('@file' => $file))); } } } @@ -993,8 +1164,8 @@ class DrupalHTTPRequestTestCase extends DrupalWebTestCase { $result = drupal_http_request($auth); $this->drupalSetContent($result->data); - $this->assertRaw($username, '$_SERVER["PHP_AUTH_USER"] is passed correctly.'); - $this->assertRaw($password, '$_SERVER["PHP_AUTH_PW"] is passed correctly.'); + $this->assertRaw($username, 'Username is passed correctly.'); + $this->assertRaw($password, 'Password is passed correctly.'); } function testDrupalHTTPRequestRedirect() { @@ -1053,6 +1224,74 @@ class DrupalHTTPRequestTestCase extends DrupalWebTestCase { } } +/** + * Tests parsing of the HTTP response status line. + */ +class DrupalHTTPResponseStatusLineTest extends DrupalUnitTestCase { + public static function getInfo() { + return array( + 'name' => 'Drupal HTTP request response status parsing', + 'description' => 'Perform unit tests on _drupal_parse_response_status().', + 'group' => 'System', + ); + } + + /** + * Tests parsing HTTP response status line. + */ + public function testStatusLine() { + // Grab the big array of test data from statusLineData(). + $data = $this->statusLineData(); + foreach($data as $test_case) { + $test_data = array_shift($test_case); + $expected = array_shift($test_case); + + $outcome = _drupal_parse_response_status($test_data); + + foreach(array_keys($expected) as $key) { + $this->assertIdentical($outcome[$key], $expected[$key]); + } + } + } + + /** + * Data provider for testStatusLine(). + * + * @return array + * Test data. + */ + protected function statusLineData() { + return array( + array( + 'HTTP/1.1 200 OK', + array( + 'http_version' => 'HTTP/1.1', + 'response_code' => '200', + 'reason_phrase' => 'OK', + ), + ), + // Data set with no reason phrase. + array( + 'HTTP/1.1 200', + array( + 'http_version' => 'HTTP/1.1', + 'response_code' => '200', + 'reason_phrase' => '', + ), + ), + // Arbitrary strings. + array( + 'version code multi word explanation', + array( + 'http_version' => 'version', + 'response_code' => 'code', + 'reason_phrase' => 'multi word explanation', + ), + ), + ); + } +} + /** * Testing drupal_add_region_content and drupal_get_region_content. */ @@ -1072,7 +1311,7 @@ class DrupalSetContentTestCase extends DrupalWebTestCase { function testRegions() { global $theme_key; - $block_regions = array_keys(system_region_list($theme_key)); + $block_regions = system_region_list($theme_key, REGIONS_ALL, FALSE); $delimiter = $this->randomName(32); $values = array(); // Set some random content for each region available. @@ -1133,6 +1372,15 @@ class DrupalGotoTest extends DrupalWebTestCase { $this->assertText('drupal_goto', 'Drupal goto redirect succeeded.'); $this->assertEqual($this->getUrl(), url('common-test/drupal_goto', array('query' => array('foo' => '123'), 'absolute' => TRUE)), 'Drupal goto redirected to expected URL.'); + // Test that calling drupal_goto() on the current path is not dangerous. + variable_set('common_test_redirect_current_path', TRUE); + $this->drupalGet('', array('query' => array('q' => 'http://www.example.com/'))); + $headers = $this->drupalGetHeaders(TRUE); + list(, $status) = explode(' ', $headers[0][':status'], 3); + $this->assertEqual($status, 302, 'Expected response code was sent.'); + $this->assertNotEqual($this->getUrl(), 'http://www.example.com/', 'Drupal goto did not redirect to external URL.'); + $this->assertTrue(strpos($this->getUrl(), url('', array('absolute' => TRUE))) === 0, 'Drupal redirected to itself.'); + variable_del('common_test_redirect_current_path'); // Test that drupal_goto() respects ?destination=xxx. Use an complicated URL // to test that the path is encoded and decoded properly. $destination = 'common-test/drupal_goto/destination?foo=%2525&bar=123'; @@ -1318,6 +1566,127 @@ class JavaScriptTestCase extends DrupalWebTestCase { $this->assertTrue(strpos($javascript, $inline) > 0, 'Rendered JavaScript footer returns the inline code.'); } + /** + * Test the 'javascript_always_use_jquery' variable. + */ + function testJavaScriptAlwaysUseJQuery() { + // The default front page of the site should use jQuery and other standard + // scripts and settings. + $this->drupalGet(''); + $this->assertRaw('misc/jquery.js', 'Default behavior: The front page of the site includes jquery.js.'); + $this->assertRaw('misc/drupal.js', 'Default behavior: The front page of the site includes drupal.js.'); + $this->assertRaw('Drupal.settings', 'Default behavior: The front page of the site includes Drupal settings.'); + $this->assertRaw('basePath', 'Default behavior: The front page of the site includes the basePath Drupal setting.'); + + // The default front page should not use jQuery and other standard scripts + // and settings when the 'javascript_always_use_jquery' variable is set to + // FALSE. + variable_set('javascript_always_use_jquery', FALSE); + $this->drupalGet(''); + $this->assertNoRaw('misc/jquery.js', 'When "javascript_always_use_jquery" is FALSE: The front page of the site does not include jquery.js.'); + $this->assertNoRaw('misc/drupal.js', 'When "javascript_always_use_jquery" is FALSE: The front page of the site does not include drupal.js.'); + $this->assertNoRaw('Drupal.settings', 'When "javascript_always_use_jquery" is FALSE: The front page of the site does not include Drupal settings.'); + $this->assertNoRaw('basePath', 'When "javascript_always_use_jquery" is FALSE: The front page of the site does not include the basePath Drupal setting.'); + variable_del('javascript_always_use_jquery'); + + // When only settings have been added via drupal_add_js(), drupal_get_js() + // should still return jQuery and other standard scripts and settings. + $this->resetStaticVariables(); + drupal_add_js(array('testJavaScriptSetting' => 'test'), 'setting'); + $javascript = drupal_get_js(); + $this->assertTrue(strpos($javascript, 'misc/jquery.js') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when only settings have been added includes jquery.js.'); + $this->assertTrue(strpos($javascript, 'misc/drupal.js') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when only settings have been added includes drupal.js.'); + $this->assertTrue(strpos($javascript, 'Drupal.settings') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when only settings have been added includes Drupal.settings.'); + $this->assertTrue(strpos($javascript, 'basePath') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when only settings have been added includes the basePath Drupal setting.'); + $this->assertTrue(strpos($javascript, 'testJavaScriptSetting') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when only settings have been added includes the added Drupal settings.'); + + // When only settings have been added via drupal_add_js() and the + // 'javascript_always_use_jquery' variable is set to FALSE, drupal_get_js() + // should not return jQuery and other standard scripts and settings, nor + // should it return the requested settings (since they cannot actually be + // addded to the page without jQuery). + $this->resetStaticVariables(); + variable_set('javascript_always_use_jquery', FALSE); + drupal_add_js(array('testJavaScriptSetting' => 'test'), 'setting'); + $javascript = drupal_get_js(); + $this->assertTrue(strpos($javascript, 'misc/jquery.js') === FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when only settings have been added does not include jquery.js.'); + $this->assertTrue(strpos($javascript, 'misc/drupal.js') === FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when only settings have been added does not include drupal.js.'); + $this->assertTrue(strpos($javascript, 'Drupal.settings') === FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when only settings have been added does not include Drupal.settings.'); + $this->assertTrue(strpos($javascript, 'basePath') === FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when only settings have been added does not include the basePath Drupal setting.'); + $this->assertTrue(strpos($javascript, 'testJavaScriptSetting') === FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when only settings have been added does not include the added Drupal settings.'); + variable_del('javascript_always_use_jquery'); + + // When a regular file has been added via drupal_add_js(), drupal_get_js() + // should return jQuery and other standard scripts and settings. + $this->resetStaticVariables(); + drupal_add_js('misc/collapse.js'); + $javascript = drupal_get_js(); + $this->assertTrue(strpos($javascript, 'misc/jquery.js') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes jquery.js.'); + $this->assertTrue(strpos($javascript, 'misc/drupal.js') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes drupal.js.'); + $this->assertTrue(strpos($javascript, 'Drupal.settings') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes Drupal.settings.'); + $this->assertTrue(strpos($javascript, 'basePath') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes the basePath Drupal setting.'); + $this->assertTrue(strpos($javascript, 'misc/collapse.js') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes the custom file.'); + + // When a regular file has been added via drupal_add_js() and the + // 'javascript_always_use_jquery' variable is set to FALSE, drupal_get_js() + // should still return jQuery and other standard scripts and settings + // (since the file is assumed to require jQuery by default). + $this->resetStaticVariables(); + variable_set('javascript_always_use_jquery', FALSE); + drupal_add_js('misc/collapse.js'); + $javascript = drupal_get_js(); + $this->assertTrue(strpos($javascript, 'misc/jquery.js') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes jquery.js.'); + $this->assertTrue(strpos($javascript, 'misc/drupal.js') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes drupal.js.'); + $this->assertTrue(strpos($javascript, 'Drupal.settings') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes Drupal.settings.'); + $this->assertTrue(strpos($javascript, 'basePath') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes the basePath Drupal setting.'); + $this->assertTrue(strpos($javascript, 'misc/collapse.js') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file has been added includes the custom file.'); + variable_del('javascript_always_use_jquery'); + + // When a file that does not require jQuery has been added via + // drupal_add_js(), drupal_get_js() should still return jQuery and other + // standard scripts and settings by default. + $this->resetStaticVariables(); + drupal_add_js('misc/collapse.js', array('requires_jquery' => FALSE)); + $javascript = drupal_get_js(); + $this->assertTrue(strpos($javascript, 'misc/jquery.js') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added includes jquery.js.'); + $this->assertTrue(strpos($javascript, 'misc/drupal.js') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added includes drupal.js.'); + $this->assertTrue(strpos($javascript, 'Drupal.settings') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added includes Drupal.settings.'); + $this->assertTrue(strpos($javascript, 'basePath') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added includes the basePath Drupal setting.'); + $this->assertTrue(strpos($javascript, 'misc/collapse.js') !== FALSE, 'Default behavior: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added includes the custom file.'); + + // When a file that does not require jQuery has been added via + // drupal_add_js() and the 'javascript_always_use_jquery' variable is set + // to FALSE, drupal_get_js() should not return jQuery and other standard + // scripts and setting, but it should still return the requested file. + $this->resetStaticVariables(); + variable_set('javascript_always_use_jquery', FALSE); + drupal_add_js('misc/collapse.js', array('requires_jquery' => FALSE)); + $javascript = drupal_get_js(); + $this->assertTrue(strpos($javascript, 'misc/jquery.js') === FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added does not include jquery.js.'); + $this->assertTrue(strpos($javascript, 'misc/drupal.js') === FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added does not include drupal.js.'); + $this->assertTrue(strpos($javascript, 'Drupal.settings') === FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added does not include Drupal.settings.'); + $this->assertTrue(strpos($javascript, 'basePath') === FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added does not include the basePath Drupal setting.'); + $this->assertTrue(strpos($javascript, 'misc/collapse.js') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when a custom JavaScript file that does not require jQuery has been added includes the custom file.'); + variable_del('javascript_always_use_jquery'); + + // When 'javascript_always_use_jquery' is set to FALSE and a file that does + // not require jQuery is added, followed by one that does, drupal_get_js() + // should return jQuery and other standard scripts and settings, in + // addition to both of the requested files. + $this->resetStaticVariables(); + variable_set('javascript_always_use_jquery', FALSE); + drupal_add_js('misc/collapse.js', array('requires_jquery' => FALSE)); + drupal_add_js('misc/ajax.js'); + $javascript = drupal_get_js(); + $this->assertTrue(strpos($javascript, 'misc/jquery.js') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when at least one custom JavaScript file that requires jQuery has been added includes jquery.js.'); + $this->assertTrue(strpos($javascript, 'misc/drupal.js') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when at least one custom JavaScript file that requires jQuery has been added includes drupal.js.'); + $this->assertTrue(strpos($javascript, 'Drupal.settings') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when at least one custom JavaScript file that requires jQuery has been added includes Drupal.settings.'); + $this->assertTrue(strpos($javascript, 'basePath') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when at least one custom JavaScript file that requires jQuery has been added includes the basePath Drupal setting.'); + $this->assertTrue(strpos($javascript, 'misc/collapse.js') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when at least one custom JavaScript file that requires jQuery has been added includes the first custom file.'); + $this->assertTrue(strpos($javascript, 'misc/ajax.js') !== FALSE, 'When "javascript_always_use_jquery" is FALSE: The JavaScript returned by drupal_get_js() when at least one custom JavaScript file that requires jQuery has been added includes the second custom file.'); + variable_del('javascript_always_use_jquery'); + } + /** * Test drupal_add_js() sets preproccess to false when cache is set to false. */ @@ -1546,6 +1915,15 @@ class JavaScriptTestCase extends DrupalWebTestCase { $query_string = variable_get('css_js_query_string', '0'); $this->assertRaw(drupal_get_path('module', 'node') . '/node.js?' . $query_string, 'Query string was appended correctly to js.'); } + + /** + * Resets static variables related to adding JavaScript to a page. + */ + function resetStaticVariables() { + drupal_static_reset('drupal_add_js'); + drupal_static_reset('drupal_add_library'); + drupal_static_reset('drupal_get_library'); + } } /** @@ -1864,7 +2242,7 @@ class DrupalRenderTestCase extends DrupalWebTestCase { } /** - * Tests caching of an empty render item. + * Tests caching of render items. */ function testDrupalRenderCache() { // Force a request via GET. @@ -1890,6 +2268,59 @@ class DrupalRenderTestCase extends DrupalWebTestCase { drupal_render($element); $this->assertFalse(isset($element['#printed']), 'Cache hit'); + // Test that user 1 does not share the cache with other users who have the + // same roles, even when DRUPAL_CACHE_PER_ROLE is used. + $user1 = user_load(1); + $first_authenticated_user = $this->drupalCreateUser(); + $second_authenticated_user = $this->drupalCreateUser(); + $user1->roles = array_intersect_key($user1->roles, array(DRUPAL_AUTHENTICATED_RID => TRUE)); + user_save($user1); + // Load all the accounts again, to make sure we have complete account + // objects. + $user1 = user_load(1); + $first_authenticated_user = user_load($first_authenticated_user->uid); + $second_authenticated_user = user_load($second_authenticated_user->uid); + $this->assertEqual($user1->roles, $first_authenticated_user->roles, 'User 1 has the same roles as an authenticated user.'); + // Impersonate user 1 and render content that only user 1 should have + // permission to see. + $original_user = $GLOBALS['user']; + $original_session_state = drupal_save_session(); + drupal_save_session(FALSE); + $GLOBALS['user'] = $user1; + $test_element = array( + '#cache' => array( + 'keys' => array('test'), + 'granularity' => DRUPAL_CACHE_PER_ROLE, + ), + ); + $element = $test_element; + $element['#markup'] = 'content for user 1'; + $output = drupal_render($element); + $this->assertEqual($output, 'content for user 1'); + // Verify the cache is working by rendering the same element but with + // different markup passed in; the result should be the same. + $element = $test_element; + $element['#markup'] = 'should not be used'; + $output = drupal_render($element); + $this->assertEqual($output, 'content for user 1'); + // Verify that the first authenticated user does not see the same content + // as user 1. + $GLOBALS['user'] = $first_authenticated_user; + $element = $test_element; + $element['#markup'] = 'content for authenticated users'; + $output = drupal_render($element); + $this->assertEqual($output, 'content for authenticated users'); + // Verify that the second authenticated user shares the cache with the + // first authenticated user. + $GLOBALS['user'] = $second_authenticated_user; + $element = $test_element; + $element['#markup'] = 'should not be used'; + $output = drupal_render($element); + $this->assertEqual($output, 'content for authenticated users'); + // Restore the original logged-in user. + $GLOBALS['user'] = $original_user; + drupal_save_session($original_session_state); + // Restore the previous request method. $_SERVER['REQUEST_METHOD'] = $request_method; } @@ -2756,3 +3187,28 @@ class ArrayDiffUnitTest extends DrupalUnitTestCase { $this->assertIdentical(drupal_array_diff_assoc_recursive($this->array1, $this->array2), $expected); } } + +/** + * Tests the functionality of drupal_get_query_array(). + */ +class DrupalGetQueryArrayTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Query parsing using drupal_get_query_array()', + 'description' => 'Tests that drupal_get_query_array() correctly parses query parameters.', + 'group' => 'System', + ); + } + + /** + * Tests that drupal_get_query_array() correctly explodes query parameters. + */ + public function testDrupalGetQueryArray() { + $url = "http://my.site.com/somepath?foo=/content/folder[@name='foo']/folder[@name='bar']"; + $parsed = parse_url($url); + $result = drupal_get_query_array($parsed['query']); + $this->assertEqual($result['foo'], "/content/folder[@name='foo']/folder[@name='bar']", 'drupal_get_query_array() should only explode parameters on the first equals sign.'); + } + +} diff --git a/site/modules/simpletest/tests/common_test.info b/site/modules/simpletest/tests/common_test.info index b851cf0..c4ae99c 100644 --- a/site/modules/simpletest/tests/common_test.info +++ b/site/modules/simpletest/tests/common_test.info @@ -7,8 +7,7 @@ stylesheets[all][] = common_test.css stylesheets[print][] = common_test.print.css hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/common_test.module b/site/modules/simpletest/tests/common_test.module index 674a494..d092c92 100644 --- a/site/modules/simpletest/tests/common_test.module +++ b/site/modules/simpletest/tests/common_test.module @@ -92,6 +92,18 @@ function common_test_drupal_goto_alter(&$path, &$options, &$http_response_code) } } +/** + * Implements hook_init(). + */ +function common_test_init() { + if (variable_get('common_test_redirect_current_path', FALSE)) { + drupal_goto(current_path()); + } + if (variable_get('common_test_link_to_current_path', FALSE)) { + drupal_set_message(l('link which should point to the current path', current_path())); + } +} + /** * Print destination query parameter. */ diff --git a/site/modules/simpletest/tests/common_test_cron_helper.info b/site/modules/simpletest/tests/common_test_cron_helper.info index 231942a..dd5487d 100644 --- a/site/modules/simpletest/tests/common_test_cron_helper.info +++ b/site/modules/simpletest/tests/common_test_cron_helper.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/database_test.info b/site/modules/simpletest/tests/database_test.info index 1e94047..2707a7b 100644 --- a/site/modules/simpletest/tests/database_test.info +++ b/site/modules/simpletest/tests/database_test.info @@ -5,8 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/database_test.install b/site/modules/simpletest/tests/database_test.install index 867d813..1136115 100644 --- a/site/modules/simpletest/tests/database_test.install +++ b/site/modules/simpletest/tests/database_test.install @@ -87,6 +87,9 @@ function database_test_schema() { ), ); + $schema['test_people_copy'] = $schema['test_people']; + $schema['test_people_copy']['description'] = 'A duplicate version of the test_people table, used for additional tests.'; + $schema['test_one_blob'] = array( 'description' => 'A simple table including a BLOB field for testing BLOB behavior.', 'fields' => array( diff --git a/site/modules/simpletest/tests/database_test.test b/site/modules/simpletest/tests/database_test.test index b58578e..59d2e5d 100644 --- a/site/modules/simpletest/tests/database_test.test +++ b/site/modules/simpletest/tests/database_test.test @@ -23,6 +23,7 @@ class DatabaseTestCase extends DrupalWebTestCase { $schema['test'] = drupal_get_schema('test'); $schema['test_people'] = drupal_get_schema('test_people'); + $schema['test_people_copy'] = drupal_get_schema('test_people_copy'); $schema['test_one_blob'] = drupal_get_schema('test_one_blob'); $schema['test_two_blobs'] = drupal_get_schema('test_two_blobs'); $schema['test_task'] = drupal_get_schema('test_task'); @@ -237,7 +238,7 @@ class DatabaseConnectionTestCase extends DatabaseTestCase { // Open the default target so we have an object to compare. $db1 = Database::getConnection('default', 'default'); - // Try to close the the default connection, then open a new one. + // Try to close the default connection, then open a new one. Database::closeConnection('default', 'default'); $db2 = Database::getConnection('default', 'default'); @@ -603,9 +604,9 @@ class DatabaseInsertTestCase extends DatabaseTestCase { } /** - * Test that the INSERT INTO ... SELECT ... syntax works. + * Test that the INSERT INTO ... SELECT (fields) ... syntax works. */ - function testInsertSelect() { + function testInsertSelectFields() { $query = db_select('test_people', 'tp'); // The query builder will always append expressions after fields. // Add the expression first to test that the insert fields are correctly @@ -627,6 +628,27 @@ class DatabaseInsertTestCase extends DatabaseTestCase { $saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Meredith'))->fetchField(); $this->assertIdentical($saved_age, '30', 'Can retrieve after inserting.'); } + + /** + * Tests that the INSERT INTO ... SELECT * ... syntax works. + */ + function testInsertSelectAll() { + $query = db_select('test_people', 'tp') + ->fields('tp') + ->condition('tp.name', 'Meredith'); + + // The resulting query should be equivalent to: + // INSERT INTO test_people_copy + // SELECT * + // FROM test_people tp + // WHERE tp.name = 'Meredith' + db_insert('test_people_copy') + ->from($query) + ->execute(); + + $saved_age = db_query('SELECT age FROM {test_people_copy} WHERE name = :name', array(':name' => 'Meredith'))->fetchField(); + $this->assertIdentical($saved_age, '30', 'Can retrieve after inserting.'); + } } /** @@ -1392,10 +1414,47 @@ class DatabaseSelectTestCase extends DatabaseTestCase { } $query = (string)$query; - $expected = "/* Testing query comments SELECT nid FROM {node}; -- */ SELECT test.name AS name, test.age AS age\nFROM \n{test} test"; + $expected = "/* Testing query comments * / SELECT nid FROM {node}; -- */ SELECT test.name AS name, test.age AS age\nFROM \n{test} test"; $this->assertEqual($num_records, 4, 'Returned the correct number of rows.'); $this->assertEqual($query, $expected, 'The flattened query contains the sanitised comment string.'); + + $connection = Database::getConnection(); + foreach ($this->makeCommentsProvider() as $test_set) { + list($expected, $comments) = $test_set; + $this->assertEqual($expected, $connection->makeComment($comments)); + } + } + + /** + * Provides expected and input values for testVulnerableComment(). + */ + function makeCommentsProvider() { + return array( + array( + '/* */ ', + array(''), + ), + // Try and close the comment early. + array( + '/* Exploit * / DROP TABLE node; -- */ ', + array('Exploit */ DROP TABLE node; --'), + ), + // Variations on comment closing. + array( + '/* Exploit * / * / DROP TABLE node; -- */ ', + array('Exploit */*/ DROP TABLE node; --'), + ), + array( + '/* Exploit * * // DROP TABLE node; -- */ ', + array('Exploit **// DROP TABLE node; --'), + ), + // Try closing the comment in the second string which is appended. + array( + '/* Exploit * / DROP TABLE node; --; Another try * / DROP TABLE node; -- */ ', + array('Exploit */ DROP TABLE node; --', 'Another try */ DROP TABLE node; --'), + ), + ); } /** @@ -1925,6 +1984,15 @@ class DatabaseSelectOrderedTestCase extends DatabaseTestCase { $this->assertEqual($num_records, 4, 'Returned the correct number of rows.'); } + + /** + * Tests that the sort direction is sanitized properly. + */ + function testOrderByEscaping() { + $query = db_select('test')->orderBy('name', 'invalid direction'); + $order_bys = $query->getOrderBy(); + $this->assertEqual($order_bys['name'], 'ASC', 'Invalid order by direction is converted to ASC.'); + } } /** @@ -2599,6 +2667,52 @@ class DatabaseTaggingTestCase extends DatabaseTestCase { $this->assertFalse($query->hasAnyTag('other', 'stuff'), 'hasAnyTag() returned false.'); } + /** + * Confirm that an extended query has a "tag" added to it. + */ + function testExtenderHasTag() { + $query = db_select('test') + ->extend('SelectQueryExtender'); + $query->addField('test', 'name'); + $query->addField('test', 'age', 'age'); + + $query->addTag('test'); + + $this->assertTrue($query->hasTag('test'), 'hasTag() returned true.'); + $this->assertFalse($query->hasTag('other'), 'hasTag() returned false.'); + } + + /** + * Test extended query tagging "has all of these tags" functionality. + */ + function testExtenderHasAllTags() { + $query = db_select('test') + ->extend('SelectQueryExtender'); + $query->addField('test', 'name'); + $query->addField('test', 'age', 'age'); + + $query->addTag('test'); + $query->addTag('other'); + + $this->assertTrue($query->hasAllTags('test', 'other'), 'hasAllTags() returned true.'); + $this->assertFalse($query->hasAllTags('test', 'stuff'), 'hasAllTags() returned false.'); + } + + /** + * Test extended query tagging "has at least one of these tags" functionality. + */ + function testExtenderHasAnyTag() { + $query = db_select('test') + ->extend('SelectQueryExtender'); + $query->addField('test', 'name'); + $query->addField('test', 'age', 'age'); + + $query->addTag('test'); + + $this->assertTrue($query->hasAnyTag('test', 'other'), 'hasAnyTag() returned true.'); + $this->assertFalse($query->hasAnyTag('other', 'stuff'), 'hasAnyTag() returned false.'); + } + /** * Test that we can attach meta data to a query object. * @@ -3069,6 +3183,15 @@ class DatabaseTemporaryQueryTestCase extends DrupalWebTestCase { $this->assertEqual($this->countTableRows($table_name_system), $this->countTableRows("system"), 'A temporary table was created successfully in this request.'); $this->assertEqual($this->countTableRows($table_name_users), $this->countTableRows("users"), 'A second temporary table was created successfully in this request.'); + + // Check that leading whitespace and comments do not cause problems + // in the modified query. + $sql = " + -- Let's select some rows into a temporary table + SELECT name FROM {test} + "; + $table_name_test = db_query_temporary($sql, array()); + $this->assertEqual($this->countTableRows($table_name_test), $this->countTableRows('test'), 'Leading white space and comments do not interfere with temporary table creation.'); } } @@ -3307,6 +3430,34 @@ class DatabaseQueryTestCase extends DatabaseTestCase { $this->assertEqual(count($names), 3, 'Correct number of names returned'); } + + /** + * Test SQL injection via database query array arguments. + */ + public function testArrayArgumentsSQLInjection() { + // Attempt SQL injection and verify that it does not work. + $condition = array( + "1 ;INSERT INTO {test} (name) VALUES ('test12345678'); -- " => '', + '1' => '', + ); + try { + db_query("SELECT * FROM {test} WHERE name = :name", array(':name' => $condition))->fetchObject(); + $this->fail('SQL injection attempt via array arguments should result in a PDOException.'); + } + catch (PDOException $e) { + $this->pass('SQL injection attempt via array arguments should result in a PDOException.'); + } + + // Test that the insert query that was used in the SQL injection attempt did + // not result in a row being inserted in the database. + $result = db_select('test') + ->condition('name', 'test12345678') + ->countQuery() + ->execute() + ->fetchField(); + $this->assertFalse($result, 'SQL injection attempt did not result in a row being inserted in the database table.'); + } + } /** @@ -3340,12 +3491,14 @@ class DatabaseTransactionTestCase extends DatabaseTestCase { } /** - * Helper method for transaction unit test. This "outer layer" transaction - * starts and then encapsulates the "inner layer" transaction. This nesting - * is used to evaluate whether the the database transaction API properly - * supports nesting. By "properly supports," we mean the outer transaction - * continues to exist regardless of what functions are called and whether - * those functions start their own transactions. + * Helper method for transaction unit test. + * + * This "outer layer" transaction starts and then encapsulates the + * "inner layer" transaction. This nesting is used to evaluate whether the + * database transaction API properly supports nesting. By "properly supports," + * we mean the outer transaction continues to exist regardless of what + * functions are called and whether those functions start their own + * transactions. * * In contrast, a typical database would commit the outer transaction, start * a new transaction for the inner layer, commit the inner layer transaction, diff --git a/site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.info b/site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.info new file mode 100644 index 0000000..1934fd4 --- /dev/null +++ b/site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.info @@ -0,0 +1,13 @@ +name = "Drupal code registry test" +description = "Support module for testing the code registry." +files[] = drupal_autoload_test_interface.inc +files[] = drupal_autoload_test_class.inc +package = Testing +version = VERSION +core = 7.x +hidden = TRUE + +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" +project = "drupal" +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.module b/site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.module new file mode 100644 index 0000000..edd5d77 --- /dev/null +++ b/site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.module @@ -0,0 +1,22 @@ +name == 'drupal_autoload_test' && version_compare(PHP_VERSION, '5.4') >= 0) { + $files["$module->dir/drupal_autoload_test_trait.sh"] = array( + 'module' => $module->name, + 'weight' => $module->weight, + ); + } + } +} diff --git a/site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test_class.inc b/site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test_class.inc new file mode 100644 index 0000000..afd72fe --- /dev/null +++ b/site/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test_class.inc @@ -0,0 +1,11 @@ + 'Entity loading', + 'description' => 'Tests the entity_load() function.', + 'group' => 'Entity API', + ); + } + + /** + * Tests the functionality for loading entities matching certain conditions. + */ + public function testEntityLoadConditions() { + // Create a few nodes. One of them is given an edge-case title of "Array", + // because loading entities by an array of conditions is subject to PHP + // array-to-string conversion issues and we want to test those. + $node_1 = $this->drupalCreateNode(array('title' => 'Array')); + $node_2 = $this->drupalCreateNode(array('title' => 'Node 2')); + $node_3 = $this->drupalCreateNode(array('title' => 'Node 3')); + + // Load all entities so that they are statically cached. + $all_nodes = entity_load('node', FALSE); + + // Check that the first node can be loaded by title. + $nodes_loaded = entity_load('node', FALSE, array('title' => 'Array')); + $this->assertEqual(array_keys($nodes_loaded), array($node_1->nid)); + + // Check that the second and third nodes can be loaded by title using an + // array of conditions, and that the first node is not loaded from the + // cache along with them. + $nodes_loaded = entity_load('node', FALSE, array('title' => array('Node 2', 'Node 3'))); + ksort($nodes_loaded); + $this->assertEqual(array_keys($nodes_loaded), array($node_2->nid, $node_3->nid)); + $this->assertIdentical($nodes_loaded[$node_2->nid], $all_nodes[$node_2->nid], 'Loaded node 2 is identical to cached node.'); + $this->assertIdentical($nodes_loaded[$node_3->nid], $all_nodes[$node_3->nid], 'Loaded node 3 is identical to cached node.'); + } +} diff --git a/site/modules/simpletest/tests/entity_crud_hook_test.info b/site/modules/simpletest/tests/entity_crud_hook_test.info index f4aed27..94f34b6 100644 --- a/site/modules/simpletest/tests/entity_crud_hook_test.info +++ b/site/modules/simpletest/tests/entity_crud_hook_test.info @@ -5,8 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/entity_query_access_test.info b/site/modules/simpletest/tests/entity_query_access_test.info index 0e4316a..1c1bbf7 100644 --- a/site/modules/simpletest/tests/entity_query_access_test.info +++ b/site/modules/simpletest/tests/entity_query_access_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/error_test.info b/site/modules/simpletest/tests/error_test.info index 86fb367..f534291 100644 --- a/site/modules/simpletest/tests/error_test.info +++ b/site/modules/simpletest/tests/error_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/file.test b/site/modules/simpletest/tests/file.test index 0f2cdb6..89ecac7 100644 --- a/site/modules/simpletest/tests/file.test +++ b/site/modules/simpletest/tests/file.test @@ -480,21 +480,6 @@ class FileValidatorTest extends DrupalWebTestCase { * Test file_validate_size(). */ function testFileValidateSize() { - global $user; - $original_user = $user; - drupal_save_session(FALSE); - - // Run these test as uid = 1. - $user = user_load(1); - - $file = new stdClass(); - $file->filesize = 999999; - $errors = file_validate_size($file, 1, 1); - $this->assertEqual(count($errors), 0, 'No size limits enforced on uid=1.', 'File'); - - // Run these tests as a regular user. - $user = $this->drupalCreateUser(); - // Create a file with a size of 1000 bytes, and quotas of only 1 byte. $file = new stdClass(); $file->filesize = 1000; @@ -506,9 +491,6 @@ class FileValidatorTest extends DrupalWebTestCase { $this->assertEqual(count($errors), 1, 'Error for the user being over their limit.', 'File'); $errors = file_validate_size($file, 1, 1); $this->assertEqual(count($errors), 2, 'Errors for both the file and their limit.', 'File'); - - $user = $original_user; - drupal_save_session(TRUE); } } @@ -952,7 +934,7 @@ class FileDirectoryTest extends FileTestCase { $this->assertTrue(is_file(file_default_scheme() . '://.htaccess'), 'Successfully re-created the .htaccess file in the files directory.', 'File'); // Verify contents of .htaccess file. $file = file_get_contents(file_default_scheme() . '://.htaccess'); - $this->assertEqual($file, "SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006\nOptions None\nOptions +FollowSymLinks", 'The .htaccess file contains the proper content.', 'File'); + $this->assertEqual($file, file_htaccess_lines(FALSE), 'The .htaccess file contains the proper content.', 'File'); } /** @@ -2388,7 +2370,7 @@ class FileDownloadTest extends FileTestCase { $this->assertEqual($headers['x-foo'], 'Bar', 'Found header set by file_test module on private download.'); $this->assertResponse(200, 'Correctly allowed access to a file when file_test provides headers.'); - // Test that the file transfered correctly. + // Test that the file transferred correctly. $this->assertEqual($contents, $this->content, 'Contents of the file are correct.'); // Deny access to all downloads via a -1 header. @@ -2564,6 +2546,7 @@ class FileNameMungingTest extends FileTestCase { parent::setUp(); $this->bad_extension = 'php'; $this->name = $this->randomName() . '.' . $this->bad_extension . '.txt'; + $this->name_with_uc_ext = $this->randomName() . '.' . strtoupper($this->bad_extension) . '.txt'; } /** @@ -2601,9 +2584,13 @@ class FileNameMungingTest extends FileTestCase { * White listed extensions are ignored by file_munge_filename(). */ function testMungeIgnoreWhitelisted() { - // Declare our extension as whitelisted. - $munged_name = file_munge_filename($this->name, $this->bad_extension); - $this->assertIdentical($munged_name, $this->name, format_string('The new filename (%munged) matches the original (%original) once the extension has been whitelisted.', array('%munged' => $munged_name, '%original' => $this->name))); + // Declare our extension as whitelisted. The declared extensions should + // be case insensitive so test using one with a different case. + $munged_name = file_munge_filename($this->name_with_uc_ext, $this->bad_extension); + $this->assertIdentical($munged_name, $this->name_with_uc_ext, format_string('The new filename (%munged) matches the original (%original) once the extension has been whitelisted.', array('%munged' => $munged_name, '%original' => $this->name_with_uc_ext))); + // The allowed extensions should also be normalized. + $munged_name = file_munge_filename($this->name, strtoupper($this->bad_extension)); + $this->assertIdentical($munged_name, $this->name, format_string('The new filename (%munged) matches the original (%original) also when the whitelisted extension is in uppercase.', array('%munged' => $munged_name, '%original' => $this->name))); } /** diff --git a/site/modules/simpletest/tests/file_test.info b/site/modules/simpletest/tests/file_test.info index 50bc9db..da253a8 100644 --- a/site/modules/simpletest/tests/file_test.info +++ b/site/modules/simpletest/tests/file_test.info @@ -6,8 +6,7 @@ core = 7.x files[] = file_test.module hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/filter_test.info b/site/modules/simpletest/tests/filter_test.info index ff3aaaf..c660e01 100644 --- a/site/modules/simpletest/tests/filter_test.info +++ b/site/modules/simpletest/tests/filter_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/form.test b/site/modules/simpletest/tests/form.test index a1506cc..a441cee 100644 --- a/site/modules/simpletest/tests/form.test +++ b/site/modules/simpletest/tests/form.test @@ -82,6 +82,10 @@ class FormsTestCase extends DrupalWebTestCase { $form_state['input'][$element] = $empty; $form_state['input']['form_id'] = $form_id; $form_state['method'] = 'post'; + + // The form token CSRF protection should not interfere with this test, + // so we bypass it by marking this test form as programmed. + $form_state['programmed'] = TRUE; drupal_prepare_form($form_id, $form, $form_state); drupal_process_form($form_id, $form, $form_state); $errors = form_get_errors(); @@ -466,6 +470,64 @@ class FormsTestCase extends DrupalWebTestCase { $this->drupalPost(NULL, array('checkboxes[one]' => TRUE, 'checkboxes[two]' => TRUE), t('Submit')); $this->assertText('An illegal choice has been detected.', 'Input forgery was detected.'); } + + /** + * Tests that submitted values are converted to scalar strings for textfields. + */ + public function testTextfieldStringValue() { + // Check multivalued submissions. + $multivalue = array('evil' => 'multivalue', 'not so' => 'good'); + $this->checkFormValue('textfield', $multivalue, ''); + $this->checkFormValue('password', $multivalue, ''); + $this->checkFormValue('textarea', $multivalue, ''); + $this->checkFormValue('machine_name', $multivalue, ''); + $this->checkFormValue('password_confirm', $multivalue, array('pass1' => '', 'pass2' => '')); + // Check integer submissions. + $integer = 5; + $string = '5'; + $this->checkFormValue('textfield', $integer, $string); + $this->checkFormValue('password', $integer, $string); + $this->checkFormValue('textarea', $integer, $string); + $this->checkFormValue('machine_name', $integer, $string); + $this->checkFormValue('password_confirm', array('pass1' => $integer, 'pass2' => $integer), array('pass1' => $string, 'pass2' => $string)); + // Check that invalid array keys are ignored for password confirm elements. + $this->checkFormValue('password_confirm', array('pass1' => 'test', 'pass2' => 'test', 'extra' => 'invalid'), array('pass1' => 'test', 'pass2' => 'test')); + } + + /** + * Checks that a given form input value is sanitized to the expected result. + * + * @param string $element_type + * The form element type. Example: textfield. + * @param mixed $input_value + * The submitted user input value for the form element. + * @param mixed $expected_value + * The sanitized result value in the form state after calling + * form_builder(). + */ + protected function checkFormValue($element_type, $input_value, $expected_value) { + $form_id = $this->randomName(); + $form = array(); + $form_state = form_state_defaults(); + $form['op'] = array('#type' => 'submit', '#value' => t('Submit')); + $form[$element_type] = array( + '#type' => $element_type, + '#title' => 'test', + ); + + $form_state['input'][$element_type] = $input_value; + $form_state['input']['form_id'] = $form_id; + $form_state['method'] = 'post'; + $form_state['values'] = array(); + drupal_prepare_form($form_id, $form, $form_state); + + // This is the main function we want to test: it is responsible for + // populating user supplied $form_state['input'] to sanitized + // $form_state['values']. + form_builder($form_id, $form, $form_state); + + $this->assertIdentical($form_state['values'][$element_type], $expected_value, format_string('Form submission for the "@element_type" element type has been correctly sanitized.', array('@element_type' => $element_type))); + } } /** @@ -614,6 +676,26 @@ class FormValidationTestCase extends DrupalWebTestCase { $this->drupalPost(NULL, array(), 'Save'); $this->assertNoFieldByName('name', 'Form element was hidden.'); $this->assertText('Name value: element_validate_access', 'Value for inaccessible form element exists.'); + + // Verify that #validate handlers don't run if the CSRF token is invalid. + $this->drupalLogin($this->drupalCreateUser()); + $this->drupalGet('form-test/validate'); + $edit = array( + 'name' => 'validate', + 'form_token' => 'invalid token' + ); + $this->drupalPost(NULL, $edit, 'Save'); + $this->assertNoFieldByName('name', '#value changed by #validate', 'Form element #value was not altered.'); + $this->assertNoText('Name value: value changed by form_set_value() in #validate', 'Form element value in $form_state was not altered.'); + $this->assertText('The form has become outdated. Copy any unsaved work in the form below'); + } + + /** + * Tests that a form with a disabled CSRF token can be validated. + */ + function testDisabledToken() { + $this->drupalPost('form-test/validate-no-token', array(), 'Save'); + $this->assertText('The form_test_validate_no_token form has been submitted successfully.'); } /** @@ -920,6 +1002,26 @@ class FormsElementsTableSelectFunctionalTest extends DrupalWebTestCase { $this->assertTrue(isset($errors['tableselect']), 'Option checker disallows invalid values for radio buttons.'); } + /** + * Test presence of ajax functionality + */ + function testAjax() { + $rows = array('row1', 'row2', 'row3'); + // Test checkboxes (#multiple == TRUE). + foreach ($rows as $row) { + $element = 'tableselect[' . $row . ']'; + $edit = array($element => TRUE); + $result = $this->drupalPostAJAX('form_test/tableselect/multiple-true', $edit, $element); + $this->assertFalse(empty($result), t('Ajax triggers on checkbox for @row.', array('@row' => $row))); + } + // Test radios (#multiple == FALSE). + $element = 'tableselect'; + foreach ($rows as $row) { + $edit = array($element => $row); + $result = $this->drupalPostAjax('form_test/tableselect/multiple-false', $edit, $element); + $this->assertFalse(empty($result), t('Ajax triggers on radio for @row.', array('@row' => $row))); + } + } /** * Helper function for the option check test to submit a form while collecting errors. @@ -941,6 +1043,10 @@ class FormsElementsTableSelectFunctionalTest extends DrupalWebTestCase { $form_state['input'] = $edit; $form_state['input']['form_id'] = $form_id; + // The form token CSRF protection should not interfere with this test, + // so we bypass it by marking this test form as programmed. + $form_state['programmed'] = TRUE; + drupal_prepare_form($form_id, $form, $form_state); drupal_process_form($form_id, $form, $form_state); @@ -1136,6 +1242,182 @@ class FormsFormStorageTestCase extends DrupalWebTestCase { $this->assertText('State persisted.'); } } + + /** + * Verify that the form build-id remains the same when validation errors + * occur on a mutable form. + */ + function testMutableForm() { + // Request the form with 'cache' query parameter to enable form caching. + $this->drupalGet('form_test/form-storage', array('query' => array('cache' => 1))); + $buildIdFields = $this->xpath('//input[@name="form_build_id"]'); + $this->assertEqual(count($buildIdFields), 1, 'One form build id field on the page'); + $buildId = (string) $buildIdFields[0]['value']; + + // Trigger validation error by submitting an empty title. + $edit = array('title' => ''); + $this->drupalPost(NULL, $edit, 'Continue submit'); + + // Verify that the build-id did not change. + $this->assertFieldByName('form_build_id', $buildId, 'Build id remains the same when form validation fails'); + } + + /** + * Verifies that form build-id is regenerated when loading an immutable form + * from the cache. + */ + function testImmutableForm() { + // Request the form with 'cache' query parameter to enable form caching. + $this->drupalGet('form_test/form-storage', array('query' => array('cache' => 1, 'immutable' => 1))); + $buildIdFields = $this->xpath('//input[@name="form_build_id"]'); + $this->assertEqual(count($buildIdFields), 1, 'One form build id field on the page'); + $buildId = (string) $buildIdFields[0]['value']; + + // Trigger validation error by submitting an empty title. + $edit = array('title' => ''); + $this->drupalPost(NULL, $edit, 'Continue submit'); + + // Verify that the build-id did change. + $this->assertNoFieldByName('form_build_id', $buildId, 'Build id changes when form validation fails'); + + // Retrieve the new build-id. + $buildIdFields = $this->xpath('//input[@name="form_build_id"]'); + $this->assertEqual(count($buildIdFields), 1, 'One form build id field on the page'); + $buildId = (string) $buildIdFields[0]['value']; + + // Trigger validation error by again submitting an empty title. + $edit = array('title' => ''); + $this->drupalPost(NULL, $edit, 'Continue submit'); + + // Verify that the build-id does not change the second time. + $this->assertFieldByName('form_build_id', $buildId, 'Build id remains the same when form validation fails subsequently'); + } + + /** + * Verify that existing contrib code cannot overwrite immutable form state. + */ + public function testImmutableFormLegacyProtection() { + $this->drupalGet('form_test/form-storage', array('query' => array('cache' => 1, 'immutable' => 1))); + $build_id_fields = $this->xpath('//input[@name="form_build_id"]'); + $this->assertEqual(count($build_id_fields), 1, 'One form build id field on the page'); + $build_id = (string) $build_id_fields[0]['value']; + + // Try to poison the form cache. + $original = $this->drupalGetAJAX('form_test/form-storage-legacy/' . $build_id); + $this->assertEqual($original['form']['#build_id_old'], $build_id, 'Original build_id was recorded'); + $this->assertNotEqual($original['form']['#build_id'], $build_id, 'New build_id was generated'); + + // Assert that a watchdog message was logged by form_set_cache. + $status = (bool) db_query_range('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, array(':message' => 'Form build-id mismatch detected while attempting to store a form in the cache.')); + $this->assert($status, 'A watchdog message was logged by form_set_cache'); + + // Ensure that the form state was not poisoned by the preceeding call. + $original = $this->drupalGetAJAX('form_test/form-storage-legacy/' . $build_id); + $this->assertEqual($original['form']['#build_id_old'], $build_id, 'Original build_id was recorded'); + $this->assertNotEqual($original['form']['#build_id'], $build_id, 'New build_id was generated'); + $this->assert(empty($original['form']['#poisoned']), 'Original form structure was preserved'); + $this->assert(empty($original['form_state']['poisoned']), 'Original form state was preserved'); + } +} + +/** + * Test the form storage when page caching for anonymous users is turned on. + */ +class FormsFormStoragePageCacheTestCase extends DrupalWebTestCase { + protected $profile = 'testing'; + + public static function getInfo() { + return array( + 'name' => 'Forms using form storage on cached pages', + 'description' => 'Tests a form using form storage and makes sure validation and caching works when page caching for anonymous users is turned on.', + 'group' => 'Form API', + ); + } + + public function setUp() { + parent::setUp('form_test'); + + variable_set('cache', TRUE); + } + + /** + * Return the build id of the current form. + */ + protected function getFormBuildId() { + $build_id_fields = $this->xpath('//input[@name="form_build_id"]'); + $this->assertEqual(count($build_id_fields), 1, 'One form build id field on the page'); + return (string) $build_id_fields[0]['value']; + } + + /** + * Build-id is regenerated when validating cached form. + */ + public function testValidateFormStorageOnCachedPage() { + $this->drupalGet('form_test/form-storage-page-cache'); + $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'MISS', 'Page was not cached.'); + $this->assertText('No old build id', 'No old build id on the page'); + $build_id_initial = $this->getFormBuildId(); + + // Trigger validation error by submitting an empty title. + $edit = array('title' => ''); + $this->drupalPost(NULL, $edit, 'Save'); + $this->assertText($build_id_initial, 'Old build id on the page'); + $build_id_first_validation = $this->getFormBuildId(); + $this->assertNotEqual($build_id_initial, $build_id_first_validation, 'Build id changes when form validation fails'); + + // Trigger validation error by again submitting an empty title. + $edit = array('title' => ''); + $this->drupalPost(NULL, $edit, 'Save'); + $this->assertText('No old build id', 'No old build id on the page'); + $build_id_second_validation = $this->getFormBuildId(); + $this->assertEqual($build_id_first_validation, $build_id_second_validation, 'Build id remains the same when form validation fails subsequently'); + + // Repeat the test sequence but this time with a page loaded from the cache. + $this->drupalGet('form_test/form-storage-page-cache'); + $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'HIT', 'Page was cached.'); + $this->assertText('No old build id', 'No old build id on the page'); + $build_id_from_cache_initial = $this->getFormBuildId(); + $this->assertEqual($build_id_initial, $build_id_from_cache_initial, 'Build id is the same as on the first request'); + + // Trigger validation error by submitting an empty title. + $edit = array('title' => ''); + $this->drupalPost(NULL, $edit, 'Save'); + $this->assertText($build_id_initial, 'Old build id is initial build id'); + $build_id_from_cache_first_validation = $this->getFormBuildId(); + $this->assertNotEqual($build_id_initial, $build_id_from_cache_first_validation, 'Build id changes when form validation fails'); + $this->assertNotEqual($build_id_first_validation, $build_id_from_cache_first_validation, 'Build id from first user is not reused'); + + // Trigger validation error by again submitting an empty title. + $edit = array('title' => ''); + $this->drupalPost(NULL, $edit, 'Save'); + $this->assertText('No old build id', 'No old build id on the page'); + $build_id_from_cache_second_validation = $this->getFormBuildId(); + $this->assertEqual($build_id_from_cache_first_validation, $build_id_from_cache_second_validation, 'Build id remains the same when form validation fails subsequently'); + } + + /** + * Build-id is regenerated when rebuilding cached form. + */ + public function testRebuildFormStorageOnCachedPage() { + $this->drupalGet('form_test/form-storage-page-cache'); + $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'MISS', 'Page was not cached.'); + $this->assertText('No old build id', 'No old build id on the page'); + $build_id_initial = $this->getFormBuildId(); + + // Trigger rebuild, should regenerate build id. + $edit = array('title' => 'something'); + $this->drupalPost(NULL, $edit, 'Rebuild'); + $this->assertText($build_id_initial, 'Initial build id as old build id on the page'); + $build_id_first_rebuild = $this->getFormBuildId(); + $this->assertNotEqual($build_id_initial, $build_id_first_rebuild, 'Build id changes on first rebuild.'); + + // Trigger subsequent rebuild, should regenerate the build id again. + $edit = array('title' => 'something'); + $this->drupalPost(NULL, $edit, 'Rebuild'); + $this->assertText($build_id_first_rebuild, 'First build id as old build id on the page'); + $build_id_second_rebuild = $this->getFormBuildId(); + $this->assertNotEqual($build_id_first_rebuild, $build_id_second_rebuild, 'Build id changes on second rebuild.'); + } } /** @@ -1466,6 +1748,16 @@ class FormsProgrammaticTestCase extends DrupalWebTestCase { $this->submitForm(array('textfield' => 'dummy value', 'checkboxes' => array(1 => NULL, 2 => 2)), TRUE); $this->submitForm(array('textfield' => 'dummy value', 'checkboxes' => array(1 => NULL, 2 => NULL)), TRUE); + // Test that a programmatic form submission can successfully submit values + // even for fields where the #access property is FALSE. + $this->submitForm(array('textfield' => 'dummy value', 'textfield_no_access' => 'test value'), TRUE); + // Test that #access is respected for programmatic form submissions when + // requested to do so. + $submitted_values = array('textfield' => 'dummy value', 'textfield_no_access' => 'test value'); + $expected_values = array('textfield' => 'dummy value', 'textfield_no_access' => 'default value'); + $form_state = array('programmed_bypass_access_check' => FALSE); + $this->submitForm($submitted_values, TRUE, $expected_values, $form_state); + // Test that a programmatic form submission can correctly click a button // that limits validation errors based on user input. Since we do not // submit any values for "textfield" here and the textfield is required, we @@ -1488,10 +1780,18 @@ class FormsProgrammaticTestCase extends DrupalWebTestCase { * @param $valid_input * A boolean indicating whether or not the form submission is expected to * be valid. + * @param $expected_values + * (Optional) An array of field values that are expected to be stored by + * the form submit handler. If not set, the submitted $values are assumed + * to also be the expected stored values. + * @param $form_state + * (Optional) A keyed array containing the state of the form, to be sent in + * the call to drupal_form_submit(). The $values parameter is added to + * $form_state['values'] by default, if it is not already set. */ - private function submitForm($values, $valid_input) { + private function submitForm($values, $valid_input, $expected_values = NULL, $form_state = array()) { // Programmatically submit the given values. - $form_state = array('values' => $values); + $form_state += array('values' => $values); drupal_form_submit('form_test_programmatic_form', $form_state); // Check that the form returns an error when expected, and vice versa. @@ -1508,7 +1808,10 @@ class FormsProgrammaticTestCase extends DrupalWebTestCase { // By fetching the values from $form_state['storage'] we ensure that the // submission handler was properly executed. $stored_values = $form_state['storage']['programmatic_form_submit']; - foreach ($values as $key => $value) { + if (!isset($expected_values)) { + $expected_values = $values; + } + foreach ($expected_values as $key => $value) { $this->assertTrue(isset($stored_values[$key]) && $stored_values[$key] == $value, format_string('Submission handler correctly executed: %stored_key is %stored_value', array('%stored_key' => $key, '%stored_value' => print_r($value, TRUE)))); } } @@ -1824,3 +2127,36 @@ class HTMLIdTestCase extends DrupalWebTestCase { $this->assertNoDuplicateIds('There are no duplicate IDs'); } } + +/** + * Tests for form textarea. + */ +class FormTextareaTestCase extends DrupalUnitTestCase { + + public static function getInfo() { + return array( + 'name' => 'Form textarea', + 'description' => 'Tests form textarea related functions.', + 'group' => 'Form API', + ); + } + + /** + * Tests that textarea value is properly set. + */ + public function testValueCallback() { + $element = array(); + $form_state = array(); + $test_cases = array( + array(NULL, FALSE), + array(NULL, NULL), + array('', array('test')), + array('test', 'test'), + array('123', 123), + ); + foreach ($test_cases as $test_case) { + list($expected, $input) = $test_case; + $this->assertIdentical($expected, form_type_textarea_value($element, $input, $form_state)); + } + } +} diff --git a/site/modules/simpletest/tests/form_test.info b/site/modules/simpletest/tests/form_test.info index 2cc6036..1c93e0d 100644 --- a/site/modules/simpletest/tests/form_test.info +++ b/site/modules/simpletest/tests/form_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/form_test.module b/site/modules/simpletest/tests/form_test.module index b4d2f54..097e588 100644 --- a/site/modules/simpletest/tests/form_test.module +++ b/site/modules/simpletest/tests/form_test.module @@ -37,6 +37,13 @@ function form_test_menu() { 'access callback' => TRUE, 'type' => MENU_CALLBACK, ); + $items['form-test/validate-no-token'] = array( + 'title' => 'Form validation without a CSRF token', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('form_test_validate_no_token'), + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); $items['form-test/limit-validation-errors'] = array( 'title' => 'Form validation with some error suppression', 'page callback' => 'drupal_get_form', @@ -90,6 +97,21 @@ function form_test_menu() { 'type' => MENU_CALLBACK, ); + $items['form_test/form-storage-legacy'] = array( + 'title' => 'Emulate legacy AHAH-style ajax callback', + 'page callback' => 'form_test_storage_legacy_handler', + 'access arguments' => array('access content'), + 'type' => MENU_CALLBACK, + ); + + $items['form_test/form-storage-page-cache'] = array( + 'title' => 'Form storage with page cache test', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('form_test_storage_page_cache_form'), + 'access arguments' => array('access content'), + 'type' => MENU_CALLBACK, + ); + $items['form_test/wrapper-callback'] = array( 'title' => 'Form wrapper callback test', 'page callback' => 'form_test_wrapper_callback', @@ -439,6 +461,27 @@ function form_test_validate_required_form_no_title_submit($form, &$form_state) { drupal_set_message('The form_test_validate_required_form_no_title form was submitted successfully.'); } +/** + * Form builder for testing submission of a form without a CSRF token. + */ +function form_test_validate_no_token($form, &$form_state) { + $form['submit'] = array( + '#type' => 'submit', + '#value' => 'Save', + ); + + $form['#token'] = FALSE; + + return $form; +} + +/** + * Form submission handler for form_test_validate_no_token(). + */ +function form_test_validate_no_token_submit($form, &$form_state) { + drupal_set_message('The form_test_validate_no_token form has been submitted successfully.'); +} + /** * Builds a simple form with a button triggering partial validation. */ @@ -574,11 +617,17 @@ function _form_test_tableselect_form_builder($form, $form_state, $element_proper $form['tableselect'] = $element_properties; $form['tableselect'] += array( + '#prefix' => '
                          ', + '#suffix' => '
                          ', '#type' => 'tableselect', '#header' => $header, '#options' => $options, '#multiple' => FALSE, '#empty' => t('Empty text.'), + '#ajax' => array( + 'callback' => '_form_test_tableselect_ajax_callback', + 'wrapper' => 'tableselect-wrapper', + ), ); $form['submit'] = array( @@ -682,6 +731,13 @@ function _form_test_vertical_tabs_form($form, &$form_state) { return $form; } +/** +* Ajax callback that returns the form element. +*/ +function _form_test_tableselect_ajax_callback($form, &$form_state) { + return $form['tableselect']; +} + /** * A multistep form for testing the form storage. * @@ -746,9 +802,36 @@ function form_test_storage_form($form, &$form_state) { $form_state['cache'] = TRUE; } + if (isset($_REQUEST['immutable'])) { + $form_state['build_info']['immutable'] = TRUE; + } + return $form; } +/** + * Emulate legacy AHAH-style ajax callback. + * + * Drupal 6 AHAH callbacks used to operate directly on forms retrieved using + * form_get_cache and stored using form_set_cache after manipulation. This + * callback helps testing whether form_set_cache prevents resaving of immutable + * forms. + */ +function form_test_storage_legacy_handler($form_build_id) { + $form_state = array(); + $form = form_get_cache($form_build_id, $form_state); + + drupal_json_output(array( + 'form' => $form, + 'form_state' => $form_state, + )); + + $form['#poisoned'] = TRUE; + $form_state['poisoned'] = TRUE; + + form_set_cache($form_build_id, $form, $form_state); +} + /** * Form element validation handler for 'value' element in form_test_storage_form(). * @@ -785,6 +868,56 @@ function form_test_storage_form_submit($form, &$form_state) { $form_state['redirect'] = 'node'; } +/** + * A simple form for testing form storage when page caching is enabled. + */ +function form_test_storage_page_cache_form($form, &$form_state) { + $form['title'] = array( + '#type' => 'textfield', + '#title' => 'Title', + '#required' => TRUE, + ); + + $form['test_build_id_old'] = array( + '#type' => 'item', + '#title' => 'Old build id', + '#markup' => 'No old build id', + ); + + $form['submit'] = array( + '#type' => 'submit', + '#value' => 'Save', + ); + + $form['rebuild'] = array( + '#type' => 'submit', + '#value' => 'Rebuild', + '#submit' => array('form_test_storage_page_cache_rebuild'), + ); + + $form['#after_build'] = array('form_test_storage_page_cache_old_build_id'); + $form_state['cache'] = TRUE; + + return $form; +} + +/** + * Form element #after_build callback: output the old form build-id. + */ +function form_test_storage_page_cache_old_build_id($form) { + if (isset($form['#build_id_old'])) { + $form['test_build_id_old']['#markup'] = check_plain($form['#build_id_old']); + } + return $form; +} + +/** + * Form submit callback: Rebuild the form and continue. + */ +function form_test_storage_page_cache_rebuild($form, &$form_state) { + $form_state['rebuild'] = TRUE; +} + /** * A form for testing form labels and required marks. */ @@ -1548,6 +1681,15 @@ function form_test_programmatic_form($form, &$form_state) { '#default_value' => array(1, 2), ); + // This is used to test that programmatic form submissions can bypass #access + // restrictions. + $form['textfield_no_access'] = array( + '#type' => 'textfield', + '#title' => 'Textfield no access', + '#default_value' => 'default value', + '#access' => FALSE, + ); + $form['field_to_validate'] = array( '#type' => 'radios', '#title' => 'Field to validate (in the case of limited validation)', diff --git a/site/modules/simpletest/tests/image.test b/site/modules/simpletest/tests/image.test index dc95a6e..7ca1d3a 100644 --- a/site/modules/simpletest/tests/image.test +++ b/site/modules/simpletest/tests/image.test @@ -207,9 +207,11 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { protected $green = array(0, 255, 0, 0); protected $blue = array(0, 0, 255, 0); protected $yellow = array(255, 255, 0, 0); - protected $fuchsia = array(255, 0, 255, 0); // Used as background colors. - protected $transparent = array(0, 0, 0, 127); protected $white = array(255, 255, 255, 0); + protected $transparent = array(0, 0, 0, 127); + // Used as rotate background colors. + protected $fuchsia = array(255, 0, 255, 0); + protected $rotate_transparent = array(255, 255, 255, 127); protected $width = 40; protected $height = 20; @@ -261,6 +263,7 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { */ function testManipulations() { // If GD isn't available don't bother testing this. + module_load_include('inc', 'system', 'image.gd'); if (!function_exists('image_gd_check_settings') || !image_gd_check_settings()) { $this->pass(t('Image manipulations for the GD toolkit were skipped because the GD toolkit is not available.')); return; @@ -274,6 +277,7 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { $files = array( 'image-test.png', 'image-test.gif', + 'image-test-no-transparency.gif', 'image-test.jpg', ); @@ -333,13 +337,6 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { // Systems using non-bundled GD2 don't have imagerotate. Test if available. if (function_exists('imagerotate')) { $operations += array( - 'rotate_5' => array( - 'function' => 'rotate', - 'arguments' => array(5, 0xFF00FF), // Fuchsia background. - 'width' => 42, - 'height' => 24, - 'corners' => array_fill(0, 4, $this->fuchsia), - ), 'rotate_90' => array( 'function' => 'rotate', 'arguments' => array(90, 0xFF00FF), // Fuchsia background. @@ -347,13 +344,6 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { 'height' => 40, 'corners' => array($this->fuchsia, $this->red, $this->green, $this->blue), ), - 'rotate_transparent_5' => array( - 'function' => 'rotate', - 'arguments' => array(5), - 'width' => 42, - 'height' => 24, - 'corners' => array_fill(0, 4, $this->transparent), - ), 'rotate_transparent_90' => array( 'function' => 'rotate', 'arguments' => array(90), @@ -362,6 +352,49 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { 'corners' => array($this->transparent, $this->red, $this->green, $this->blue), ), ); + // As of PHP version 5.5, GD uses a different algorithm to rotate images + // than version 5.4 and below, resulting in different dimensions. + // See https://bugs.php.net/bug.php?id=65148. + // For the 40x20 test images, the dimensions resulting from rotation will + // be 1 pixel smaller in both width and height in PHP 5.5 and above. + // @todo: If and when the PHP bug gets solved, add an upper limit + // version check. + if (version_compare(PHP_VERSION, '5.5', '>=')) { + $operations += array( + 'rotate_5' => array( + 'function' => 'rotate', + 'arguments' => array(5, 0xFF00FF), // Fuchsia background. + 'width' => 41, + 'height' => 23, + 'corners' => array_fill(0, 4, $this->fuchsia), + ), + 'rotate_transparent_5' => array( + 'function' => 'rotate', + 'arguments' => array(5), + 'width' => 41, + 'height' => 23, + 'corners' => array_fill(0, 4, $this->rotate_transparent), + ), + ); + } + else { + $operations += array( + 'rotate_5' => array( + 'function' => 'rotate', + 'arguments' => array(5, 0xFF00FF), // Fuchsia background. + 'width' => 42, + 'height' => 24, + 'corners' => array_fill(0, 4, $this->fuchsia), + ), + 'rotate_transparent_5' => array( + 'function' => 'rotate', + 'arguments' => array(5), + 'width' => 42, + 'height' => 24, + 'corners' => array_fill(0, 4, $this->rotate_transparent), + ), + ); + } } // Systems using non-bundled GD2 don't have imagefilter. Test if available. @@ -379,7 +412,7 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { array_fill(0, 3, 76) + array(3 => 0), array_fill(0, 3, 149) + array(3 => 0), array_fill(0, 3, 29) + array(3 => 0), - array_fill(0, 3, 0) + array(3 => 127) + array_fill(0, 3, 225) + array(3 => 127) ), ), ); @@ -394,11 +427,14 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { continue 2; } - // Transparent GIFs and the imagefilter function don't work together. - // There is a todo in image.gd.inc to correct this. + // All images should be converted to truecolor when loaded. + $image_truecolor = imageistruecolor($image->resource); + $this->assertTrue($image_truecolor, format_string('Image %file after load is a truecolor image.', array('%file' => $file))); + if ($image->info['extension'] == 'gif') { if ($op == 'desaturate') { - $values['corners'][3] = $this->white; + // Transparent GIFs and the imagefilter function don't work together. + $values['corners'][3][3] = 0; } } @@ -426,6 +462,11 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { } // Now check each of the corners to ensure color correctness. foreach ($values['corners'] as $key => $corner) { + // The test gif that does not have transparency has yellow where the + // others have transparent. + if ($file === 'image-test-no-transparency.gif' && $corner === $this->transparent) { + $corner = $this->yellow; + } // Get the location of the corner. switch ($key) { case 0: @@ -451,7 +492,8 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { $directory = file_default_scheme() . '://imagetests'; file_prepare_directory($directory, FILE_CREATE_DIRECTORY); - image_save($image, $directory . '/' . $op . '.' . $image->info['extension']); + $file_path = $directory . '/' . $op . '.' . $image->info['extension']; + image_save($image, $file_path); $this->assertTrue($correct_dimensions_real, format_string('Image %file after %action action has proper dimensions.', array('%file' => $file, '%action' => $op))); $this->assertTrue($correct_dimensions_object, format_string('Image %file object after %action action is reporting the proper height and width values.', array('%file' => $file, '%action' => $op))); @@ -460,8 +502,37 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { $this->assertTrue($correct_colors, format_string('Image %file object after %action action has the correct color placement.', array('%file' => $file, '%action' => $op))); } } + + // Check that saved image reloads without raising PHP errors. + $image_reloaded = image_load($file_path); } + } + /** + * Tests loading an image whose transparent color index is out of range. + */ + function testTransparentColorOutOfRange() { + // This image was generated by taking an initial image with a palette size + // of 6 colors, and setting the transparent color index to 6 (one higher + // than the largest allowed index), as follows: + // @code + // $image = imagecreatefromgif('modules/simpletest/files/image-test.gif'); + // imagecolortransparent($image, 6); + // imagegif($image, 'modules/simpletest/files/image-test-transparent-out-of-range.gif'); + // @endcode + // This allows us to test that an image with an out-of-range color index + // can be loaded correctly. + $file = 'image-test-transparent-out-of-range.gif'; + $image = image_load(drupal_get_path('module', 'simpletest') . '/files/' . $file); + + if (!$image) { + $this->fail(format_string('Could not load image %file.', array('%file' => $file))); + } + else { + // All images should be converted to truecolor when loaded. + $image_truecolor = imageistruecolor($image->resource); + $this->assertTrue($image_truecolor, format_string('Image %file after load is a truecolor image.', array('%file' => $file))); + } } } diff --git a/site/modules/simpletest/tests/image_test.info b/site/modules/simpletest/tests/image_test.info index 0ad875b..6605d3d 100644 --- a/site/modules/simpletest/tests/image_test.info +++ b/site/modules/simpletest/tests/image_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/mail.test b/site/modules/simpletest/tests/mail.test index 8024010..3e40e13 100644 --- a/site/modules/simpletest/tests/mail.test +++ b/site/modules/simpletest/tests/mail.test @@ -267,6 +267,31 @@ class DrupalHtmlToTextTestCase extends DrupalWebTestCase { ); } + /** + * Tests that drupal_wrap_mail() removes trailing whitespace before newlines. + */ + function testDrupalHtmltoTextRemoveTrailingWhitespace() { + $text = "Hi there! \nHerp Derp"; + $mail_lines = explode("\n", drupal_wrap_mail($text)); + $this->assertNotEqual(" ", substr($mail_lines[0], -1), 'Trailing whitespace removed.'); + } + + /** + * Tests drupal_wrap_mail() retains whitespace from Usenet style signatures. + * + * RFC 3676 says, "This is a special case; an (optionally quoted or quoted and + * stuffed) line consisting of DASH DASH SP is neither fixed nor flowed." + */ + function testDrupalHtmltoTextUsenetSignature() { + $text = "Hi there!\n-- \nHerp Derp"; + $mail_lines = explode("\n", drupal_wrap_mail($text)); + $this->assertEqual("-- ", $mail_lines[1], 'Trailing whitespace not removed for dash-dash-space signatures.'); + + $text = "Hi there!\n-- \nHerp Derp"; + $mail_lines = explode("\n", drupal_wrap_mail($text)); + $this->assertEqual("--", $mail_lines[1], 'Trailing whitespace removed for incorrect dash-dash-space signatures.'); + } + /** * Test that whitespace is collapsed. */ @@ -416,7 +441,7 @@ class DrupalHtmlToTextTestCase extends DrupalWebTestCase { * is 1000 characters." */ function testVeryLongLineWrap() { - $input = 'Drupal

                          ' . str_repeat('x', 2100) . '
                          Drupal'; + $input = 'Drupal

                          ' . str_repeat('x', 2100) . '


                          Drupal'; $output = drupal_html_to_text($input); // This awkward construct comes from includes/mail.inc lines 8-13. $eol = variable_get('mail_line_endings', MAIL_LINE_ENDINGS); @@ -430,7 +455,6 @@ class DrupalHtmlToTextTestCase extends DrupalWebTestCase { $maximum_line_length = max($maximum_line_length, strlen($line . $eol)); } $verbose = 'Maximum line length found was ' . $maximum_line_length . ' octets.'; - // @todo This should assert that $maximum_line_length <= 1000. - $this->pass($verbose); + $this->assertTrue($maximum_line_length <= 1000, $verbose); } } diff --git a/site/modules/simpletest/tests/menu.test b/site/modules/simpletest/tests/menu.test index 52672c5..f5d7d29 100644 --- a/site/modules/simpletest/tests/menu.test +++ b/site/modules/simpletest/tests/menu.test @@ -1025,8 +1025,8 @@ class MenuTreeOutputTestCase extends DrupalWebTestCase { $output = menu_tree_output($this->tree_data); // Validate that the - in main-menu is changed into an underscore - $this->assertEqual( $output['1']['#theme'], 'menu_link__main_menu', 'Hyphen is changed to a dash on menu_link'); - $this->assertEqual( $output['#theme_wrappers'][0], 'menu_tree__main_menu', 'Hyphen is changed to a dash on menu_tree wrapper'); + $this->assertEqual($output['1']['#theme'], 'menu_link__main_menu', 'Hyphen is changed to an underscore on menu_link'); + $this->assertEqual($output['#theme_wrappers'][0], 'menu_tree__main_menu', 'Hyphen is changed to an underscore on menu_tree wrapper'); // Looking for child items in the data $this->assertEqual( $output['1']['#below']['2']['#href'], 'a/b', 'Checking the href on a child item'); $this->assertTrue( in_array('active-trail',$output['1']['#below']['2']['#attributes']['class']) , 'Checking the active trail class'); diff --git a/site/modules/simpletest/tests/menu_test.info b/site/modules/simpletest/tests/menu_test.info index 4ca24fa..baa7b5a 100644 --- a/site/modules/simpletest/tests/menu_test.info +++ b/site/modules/simpletest/tests/menu_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/module.test b/site/modules/simpletest/tests/module.test index 371339f..eea3b51 100644 --- a/site/modules/simpletest/tests/module.test +++ b/site/modules/simpletest/tests/module.test @@ -302,3 +302,45 @@ class ModuleUninstallTestCase extends DrupalWebTestCase { $this->assertEqual(0, $count, 'Permissions were all removed.'); } } + +class ModuleImplementsAlterTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Module implements alter', + 'description' => 'Tests hook_module_implements_alter().', + 'group' => 'Module', + ); + } + + /** + * Tests hook_module_implements_alter() adding an implementation. + */ + function testModuleImplementsAlter() { + module_enable(array('module_test'), FALSE); + $this->assertTrue(module_exists('module_test'), 'Test module is enabled.'); + + // Assert that module_test.module is now included. + $this->assertTrue(function_exists('module_test_permission'), + 'The file module_test.module was successfully included.'); + + $modules = module_implements('permission'); + $this->assertTrue(in_array('module_test', $modules), 'module_test implements hook_permission.'); + + $modules = module_implements('module_implements_alter'); + $this->assertTrue(in_array('module_test', $modules), 'module_test implements hook_module_implements_alter().'); + + // Assert that module_test.implementations.inc is not included yet. + $this->assertFalse(function_exists('module_test_altered_test_hook'), + 'The file module_test.implementations.inc is not included yet.'); + + // Assert that module_test_module_implements_alter(*, 'altered_test_hook') + // has added an implementation + $this->assertTrue(in_array('module_test', module_implements('altered_test_hook')), + 'module_test implements hook_altered_test_hook().'); + + // Assert that module_test.implementations.inc was included as part of the process. + $this->assertTrue(function_exists('module_test_altered_test_hook'), + 'The file module_test.implementations.inc was included.'); + } + +} diff --git a/site/modules/simpletest/tests/module_test.implementations.inc b/site/modules/simpletest/tests/module_test.implementations.inc new file mode 100644 index 0000000..63c866e --- /dev/null +++ b/site/modules/simpletest/tests/module_test.implementations.inc @@ -0,0 +1,10 @@ +assertFalse(user_needs_new_hash($account), 'Re-hashed password does not need a new hash.'); $this->assertTrue(user_check_password($password, $account), 'Password check succeeds with re-hashed password.'); } + + /** + * Verifies that passwords longer than 512 bytes are not hashed. + */ + public function testLongPassword() { + $password = str_repeat('x', 512); + $result = user_hash_password($password); + $this->assertFalse(empty($result), '512 byte long password is allowed.'); + $password = str_repeat('x', 513); + $result = user_hash_password($password); + $this->assertFalse($result, '513 byte long password is not allowed.'); + // Check a string of 3-byte UTF-8 characters. + $password = str_repeat('€', 170); + $result = user_hash_password($password); + $this->assertFalse(empty($result), '510 byte long password is allowed.'); + $password .= 'xx'; + $this->assertFalse(empty($result), '512 byte long password is allowed.'); + $password = str_repeat('€', 171); + $result = user_hash_password($password); + $this->assertFalse($result, '513 byte long password is not allowed.'); + } } diff --git a/site/modules/simpletest/tests/path_test.info b/site/modules/simpletest/tests/path_test.info index 71d20c3..f30412a 100644 --- a/site/modules/simpletest/tests/path_test.info +++ b/site/modules/simpletest/tests/path_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/psr_0_test/psr_0_test.info b/site/modules/simpletest/tests/psr_0_test/psr_0_test.info index b9acbf3..deada7b 100644 --- a/site/modules/simpletest/tests/psr_0_test/psr_0_test.info +++ b/site/modules/simpletest/tests/psr_0_test/psr_0_test.info @@ -5,8 +5,7 @@ core = 7.x hidden = TRUE package = Testing -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/psr_4_test/psr_4_test.info b/site/modules/simpletest/tests/psr_4_test/psr_4_test.info new file mode 100644 index 0000000..c2dde66 --- /dev/null +++ b/site/modules/simpletest/tests/psr_4_test/psr_4_test.info @@ -0,0 +1,11 @@ +name = PSR-4 Test cases +description = Test classes to be discovered by simpletest. +core = 7.x + +hidden = TRUE +package = Testing + +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" +project = "drupal" +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/psr_4_test/psr_4_test.module b/site/modules/simpletest/tests/psr_4_test/psr_4_test.module new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/site/modules/simpletest/tests/psr_4_test/psr_4_test.module @@ -0,0 +1 @@ + 'PSR4 example test: PSR-4 in disabled modules.', + 'description' => 'We want to assert that this test case is being discovered.', + 'group' => 'SimpleTest', + ); + } + + function testArithmetics() { + $this->assert(1 + 1 == 2, '1 + 1 == 2'); + } +} diff --git a/site/modules/simpletest/tests/psr_4_test/src/Tests/Nested/NestedExampleTest.php b/site/modules/simpletest/tests/psr_4_test/src/Tests/Nested/NestedExampleTest.php new file mode 100644 index 0000000..ff3ac29 --- /dev/null +++ b/site/modules/simpletest/tests/psr_4_test/src/Tests/Nested/NestedExampleTest.php @@ -0,0 +1,18 @@ + 'PSR4 example test: PSR-4 in nested subfolders.', + 'description' => 'We want to assert that this PSR-4 test case is being discovered.', + 'group' => 'SimpleTest', + ); + } + + function testArithmetics() { + $this->assert(1 + 1 == 2, '1 + 1 == 2'); + } +} diff --git a/site/modules/simpletest/tests/requirements1_test.info b/site/modules/simpletest/tests/requirements1_test.info index 9a8929a..3fca686 100644 --- a/site/modules/simpletest/tests/requirements1_test.info +++ b/site/modules/simpletest/tests/requirements1_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/requirements2_test.info b/site/modules/simpletest/tests/requirements2_test.info index 3b3ecdd..f09c28d 100644 --- a/site/modules/simpletest/tests/requirements2_test.info +++ b/site/modules/simpletest/tests/requirements2_test.info @@ -7,8 +7,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/session.test b/site/modules/simpletest/tests/session.test index 0d9b6bd..893d03e 100644 --- a/site/modules/simpletest/tests/session.test +++ b/site/modules/simpletest/tests/session.test @@ -68,8 +68,7 @@ class SessionTestCase extends DrupalWebTestCase { } /** - * Test data persistence via the session_test module callbacks. Also tests - * drupal_session_count() since session data is already generated here. + * Test data persistence via the session_test module callbacks. */ function testDataPersistence() { $user = $this->drupalCreateUser(array('access content')); @@ -478,6 +477,56 @@ class SessionHttpsTestCase extends DrupalWebTestCase { $this->assertResponse(200); } + /** + * Tests that empty session IDs do not cause unrelated sessions to load. + */ + public function testEmptySessionId() { + global $is_https; + + if ($is_https) { + $secure_session_name = session_name(); + } + else { + $secure_session_name = 'S' . session_name(); + } + + // Enable mixed mode for HTTP and HTTPS. + variable_set('https', TRUE); + + $admin_user = $this->drupalCreateUser(array('access administration pages')); + $standard_user = $this->drupalCreateUser(array('access content')); + + // First log in as the admin user on HTTP. + // We cannot use $this->drupalLogin() here because we need to use the + // special http.php URLs. + $edit = array( + 'name' => $admin_user->name, + 'pass' => $admin_user->pass_raw + ); + $this->drupalGet('user'); + $form = $this->xpath('//form[@id="user-login"]'); + $form[0]['action'] = $this->httpUrl('user'); + $this->drupalPost(NULL, $edit, t('Log in')); + + $this->curlClose(); + + // Now start a session for the standard user on HTTPS. + $edit = array( + 'name' => $standard_user->name, + 'pass' => $standard_user->pass_raw + ); + $this->drupalGet('user'); + $form = $this->xpath('//form[@id="user-login"]'); + $form[0]['action'] = $this->httpsUrl('user'); + $this->drupalPost(NULL, $edit, t('Log in')); + + // Make the secure session cookie blank. + curl_setopt($this->curlHandle, CURLOPT_COOKIE, "$secure_session_name="); + $this->drupalGet($this->httpsUrl('user')); + $this->assertNoText($admin_user->name, 'User is not logged in as admin'); + $this->assertNoText($standard_user->name, "The user's own name is not displayed because the invalid session cookie has logged them out."); + } + /** * Test that there exists a session with two specific session IDs. * diff --git a/site/modules/simpletest/tests/session_test.info b/site/modules/simpletest/tests/session_test.info index d1985f9..5057671 100644 --- a/site/modules/simpletest/tests/session_test.info +++ b/site/modules/simpletest/tests/session_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/system_dependencies_test.info b/site/modules/simpletest/tests/system_dependencies_test.info index d50da29..4ab29b9 100644 --- a/site/modules/simpletest/tests/system_dependencies_test.info +++ b/site/modules/simpletest/tests/system_dependencies_test.info @@ -6,8 +6,7 @@ core = 7.x hidden = TRUE dependencies[] = _missing_dependency -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info b/site/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info index 01d8b9d..f088990 100644 --- a/site/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info +++ b/site/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info @@ -6,8 +6,7 @@ core = 7.x hidden = TRUE dependencies[] = system_incompatible_core_version_test -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/system_incompatible_core_version_test.info b/site/modules/simpletest/tests/system_incompatible_core_version_test.info index 2d6c558..6e64ea5 100644 --- a/site/modules/simpletest/tests/system_incompatible_core_version_test.info +++ b/site/modules/simpletest/tests/system_incompatible_core_version_test.info @@ -5,8 +5,7 @@ version = VERSION core = 5.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info b/site/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info index 64cde55..f2428bb 100644 --- a/site/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info +++ b/site/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info @@ -7,8 +7,7 @@ hidden = TRUE ; system_incompatible_module_version_test declares version 1.0 dependencies[] = system_incompatible_module_version_test (>2.0) -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/system_incompatible_module_version_test.info b/site/modules/simpletest/tests/system_incompatible_module_version_test.info index 785f7a2..148170a 100644 --- a/site/modules/simpletest/tests/system_incompatible_module_version_test.info +++ b/site/modules/simpletest/tests/system_incompatible_module_version_test.info @@ -5,8 +5,7 @@ version = 1.0 core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/system_project_namespace_test.info b/site/modules/simpletest/tests/system_project_namespace_test.info new file mode 100644 index 0000000..a6a2340 --- /dev/null +++ b/site/modules/simpletest/tests/system_project_namespace_test.info @@ -0,0 +1,12 @@ +name = "System project namespace test" +description = "Support module for testing project namespace dependencies." +package = Testing +version = VERSION +core = 7.x +hidden = TRUE +dependencies[] = drupal:filter + +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" +project = "drupal" +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/system_project_namespace_test.module b/site/modules/simpletest/tests/system_project_namespace_test.module new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/site/modules/simpletest/tests/system_project_namespace_test.module @@ -0,0 +1 @@ + MENU_CALLBACK, ); + $items['system-test/drupal-set-message'] = array( + 'title' => 'Set messages with drupal_set_message()', + 'page callback' => 'system_test_drupal_set_message', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + $items['system-test/main-content-handling'] = array( 'title' => 'Test main content handling', 'page callback' => 'system_test_main_content_fallback', @@ -106,6 +113,34 @@ function system_test_menu() { 'type' => MENU_CALLBACK, ); + $items['system-test/get-destination'] = array( + 'title' => 'Test $_GET[\'destination\']', + 'page callback' => 'system_test_get_destination', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + + $items['system-test/request-destination'] = array( + 'title' => 'Test $_REQUEST[\'destination\']', + 'page callback' => 'system_test_request_destination', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + + $items['system-test/drupal-get-filename'] = array( + 'title' => 'Test drupal_get_filename()', + 'page callback' => 'system_test_drupal_get_filename', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + + $items['system-test/drupal-get-filename-with-schema-rebuild'] = array( + 'title' => 'Test drupal_get_filename() with a schema rebuild', + 'page callback' => 'system_test_drupal_get_filename_with_schema_rebuild', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + return $items; } @@ -114,8 +149,23 @@ function system_test_sleep($seconds) { } function system_test_basic_auth_page() { - $output = t('$_SERVER[\'PHP_AUTH_USER\'] is @username.', array('@username' => $_SERVER['PHP_AUTH_USER'])); - $output .= t('$_SERVER[\'PHP_AUTH_PW\'] is @password.', array('@password' => $_SERVER['PHP_AUTH_PW'])); + // The Authorization HTTP header is forwarded via Drupal's .htaccess file even + // for PHP CGI SAPIs. + if (isset($_SERVER['HTTP_AUTHORIZATION'])) { + $authorization_header = $_SERVER['HTTP_AUTHORIZATION']; + } + // If using CGI on Apache with mod_rewrite, the forwarded HTTP header appears + // in the redirected HTTP headers. See + // https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/ServerBag.php#L61 + elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { + $authorization_header = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; + } + // Resemble PHP_AUTH_USER and PHP_AUTH_PW for a Basic authentication from + // the HTTP_AUTHORIZATION header. See + // http://www.php.net/manual/features.http-auth.php + list($user, $pw) = explode(':', base64_decode(substr($authorization_header, 6))); + $output = t('Username is @username.', array('@username' => $user)); + $output .= t('Password is @password.', array('@password' => $pw)); return $output; } @@ -260,6 +310,9 @@ function system_test_system_info_alter(&$info, $file, $type) { } } + if ($file->name == 'system_project_namespace_test') { + $info['hidden'] = FALSE; + } // Make the system_dependencies_test visible by default. if ($file->name == 'system_dependencies_test') { $info['hidden'] = FALSE; @@ -405,3 +458,114 @@ function system_test_authorize_init_page($page_title) { system_authorized_init('system_test_authorize_run', drupal_get_path('module', 'system_test') . '/system_test.module', array(), $page_title); drupal_goto($authorize_url); } + +/** + * Sets two messages and removes the first one before the messages are displayed. + */ +function system_test_drupal_set_message() { + // Set two messages. + drupal_set_message('First message (removed).'); + drupal_set_message('Second message (not removed).'); + + // Remove the first. + unset($_SESSION['messages']['status'][0]); + + return ''; +} + +/** + * Page callback to print out $_GET['destination'] for testing. + */ +function system_test_get_destination() { + if (isset($_GET['destination'])) { + print $_GET['destination']; + } + // No need to render the whole page, we are just interested in this bit of + // information. + exit; +} + +/** + * Page callback to print out $_REQUEST['destination'] for testing. + */ +function system_test_request_destination() { + if (isset($_REQUEST['destination'])) { + print $_REQUEST['destination']; + } + // No need to render the whole page, we are just interested in this bit of + // information. + exit; +} + +/** + * Page callback to run drupal_get_filename() on a particular module. + */ +function system_test_drupal_get_filename() { + // Prevent SimpleTest from failing as a result of the expected PHP warnings + // this function causes. Any warnings will be recorded in the database logs + // for examination by the tests. + define('SIMPLETEST_COLLECT_ERRORS', FALSE); + + $module_name = variable_get('system_test_drupal_get_filename_test_module_name'); + drupal_get_filename('module', $module_name); + + return ''; +} + +/** + * Page callback to run drupal_get_filename() and do a schema rebuild. + */ +function system_test_drupal_get_filename_with_schema_rebuild() { + // Prevent SimpleTest from failing as a result of the expected PHP warnings + // this function causes. + define('SIMPLETEST_COLLECT_ERRORS', FALSE); + + // Record the original database tables from drupal_get_schema(). + variable_set('system_test_drupal_get_filename_with_schema_rebuild_original_tables', array_keys(drupal_get_schema(NULL, TRUE))); + + // Trigger system_test_schema() and system_test_watchdog() to perform an + // attempted recursive rebuild when drupal_get_schema() is called. See + // BootstrapGetFilenameWebTestCase::testRecursiveRebuilds(). + variable_set('system_test_drupal_get_filename_attempt_recursive_rebuild', TRUE); + drupal_get_schema(NULL, TRUE); + + return ''; +} + +/** + * Implements hook_watchdog(). + */ +function system_test_watchdog($log_entry) { + // If an attempted recursive schema rebuild has been triggered by + // system_test_drupal_get_filename_with_schema_rebuild(), perform the rebuild + // in response to the missing file message triggered by system_test_schema(). + if (!variable_get('system_test_drupal_get_filename_attempt_recursive_rebuild')) { + return; + } + if ($log_entry['type'] != 'php' || $log_entry['severity'] != WATCHDOG_WARNING) { + return; + } + $module_name = variable_get('system_test_drupal_get_filename_test_module_name'); + if (!isset($log_entry['variables']['!message']) || strpos($log_entry['variables']['!message'], format_string('The following module is missing from the file system: %name', array('%name' => $module_name))) === FALSE) { + return; + } + variable_set('system_test_drupal_get_filename_with_schema_rebuild_final_tables', array_keys(drupal_get_schema())); +} + +/** + * Implements hook_module_implements_alter(). + */ +function system_test_module_implements_alter(&$implementations, $hook) { + // For BootstrapGetFilenameWebTestCase::testRecursiveRebuilds() to work + // correctly, this module's hook_schema() implementation cannot be either the + // first implementation (since that would trigger a potential recursive + // rebuild before anything is in the drupal_get_schema() cache) or the last + // implementation (since that would trigger a potential recursive rebuild + // after the cache is already complete). So put it somewhere in the middle. + if ($hook == 'schema') { + $group = $implementations['system_test']; + unset($implementations['system_test']); + $count = count($implementations); + $implementations = array_merge(array_slice($implementations, 0, $count / 2, TRUE), array('system_test' => $group), array_slice($implementations, $count / 2, NULL, TRUE)); + } +} diff --git a/site/modules/simpletest/tests/taxonomy_test.info b/site/modules/simpletest/tests/taxonomy_test.info index 4e82d2e..14d51a8 100644 --- a/site/modules/simpletest/tests/taxonomy_test.info +++ b/site/modules/simpletest/tests/taxonomy_test.info @@ -6,8 +6,7 @@ core = 7.x hidden = TRUE dependencies[] = taxonomy -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/taxonomy_test.module b/site/modules/simpletest/tests/taxonomy_test.module index f82950c..f414438 100644 --- a/site/modules/simpletest/tests/taxonomy_test.module +++ b/site/modules/simpletest/tests/taxonomy_test.module @@ -109,3 +109,33 @@ function taxonomy_test_get_antonym($tid) { ->execute() ->fetchField(); } + +/** + * Implements hook_query_alter(). + */ +function taxonomy_test_query_alter(QueryAlterableInterface $query) { + $value = variable_get(__FUNCTION__); + if (isset($value)) { + variable_set(__FUNCTION__, ++$value); + } +} + +/** + * Implements hook_query_TAG_alter(). + */ +function taxonomy_test_query_term_access_alter(QueryAlterableInterface $query) { + $value = variable_get(__FUNCTION__); + if (isset($value)) { + variable_set(__FUNCTION__, ++$value); + } +} + +/** + * Implements hook_query_TAG_alter(). + */ +function taxonomy_test_query_taxonomy_term_access_alter(QueryAlterableInterface $query) { + $value = variable_get(__FUNCTION__); + if (isset($value)) { + variable_set(__FUNCTION__, ++$value); + } +} diff --git a/site/modules/simpletest/tests/theme.test b/site/modules/simpletest/tests/theme.test index 519a7a9..5f095bd 100644 --- a/site/modules/simpletest/tests/theme.test +++ b/site/modules/simpletest/tests/theme.test @@ -155,6 +155,15 @@ class ThemeTestCase extends DrupalWebTestCase { $this->assertNotEqual(theme_get_setting('subtheme_override', 'test_basetheme'), theme_get_setting('subtheme_override', 'test_subtheme'), 'Base theme\'s default settings values can be overridden by subtheme.'); $this->assertIdentical(theme_get_setting('basetheme_only', 'test_subtheme'), 'base theme value', 'Base theme\'s default settings values are inherited by subtheme.'); } + + /** + * Test the drupal_add_region_content() function. + */ + function testDrupalAddRegionContent() { + $this->drupalGet('theme-test/drupal-add-region-content'); + $this->assertText('Hello'); + $this->assertText('World'); + } } /** @@ -425,28 +434,100 @@ class ThemeFastTestCase extends DrupalWebTestCase { } /** - * Unit tests for theme_html_tag(). + * Tests the markup of core render element types passed to drupal_render(). */ -class ThemeHtmlTag extends DrupalUnitTestCase { +class RenderElementTypesTestCase extends DrupalWebTestCase { public static function getInfo() { return array( - 'name' => 'Theme HTML Tag', - 'description' => 'Tests theme_html_tag() built-in theme functions.', + 'name' => 'Render element types', + 'description' => 'Tests the markup of core render element types passed to drupal_render().', 'group' => 'Theme', ); } /** - * Test function theme_html_tag() + * Asserts that an array of elements is rendered properly. + * + * @param array $elements + * An array of associative arrays describing render elements and their + * expected markup. Each item in $elements must contain the following: + * - 'name': This human readable description will be displayed on the test + * results page. + * - 'value': This is the render element to test. + * - 'expected': This is the expected markup for the element in 'value'. + */ + function assertElements($elements) { + foreach($elements as $element) { + $this->assertIdentical(drupal_render($element['value']), $element['expected'], '"' . $element['name'] . '" input rendered correctly by drupal_render().'); + } + } + + /** + * Tests system #type 'container'. + */ + function testContainer() { + $elements = array( + // Basic container with no attributes. + array( + 'name' => "#type 'container' with no HTML attributes", + 'value' => array( + '#type' => 'container', + 'child' => array( + '#markup' => 'foo', + ), + ), + 'expected' => '
                          foo
                          ', + ), + // Container with a class. + array( + 'name' => "#type 'container' with a class HTML attribute", + 'value' => array( + '#type' => 'container', + 'child' => array( + '#markup' => 'foo', + ), + '#attributes' => array( + 'class' => 'bar', + ), + ), + 'expected' => '
                          foo
                          ', + ), + ); + + $this->assertElements($elements); + } + + /** + * Tests system #type 'html_tag'. */ - function testThemeHtmlTag() { - // Test auto-closure meta tag generation - $tag['element'] = array('#tag' => 'meta', '#attributes' => array('name' => 'description', 'content' => 'Drupal test')); - $this->assertEqual(''."\n", theme_html_tag($tag), 'Test auto-closure meta tag generation.'); + function testHtmlTag() { + $elements = array( + // Test auto-closure meta tag generation. + array( + 'name' => "#type 'html_tag' auto-closure meta tag generation", + 'value' => array( + '#type' => 'html_tag', + '#tag' => 'meta', + '#attributes' => array( + 'name' => 'description', + 'content' => 'Drupal test', + ), + ), + 'expected' => '' . "\n", + ), + // Test title tag generation. + array( + 'name' => "#type 'html_tag' title tag generation", + 'value' => array( + '#type' => 'html_tag', + '#tag' => 'title', + '#value' => 'title test', + ), + 'expected' => 'title test' . "\n", + ), + ); - // Test title tag generation - $tag['element'] = array('#tag' => 'title', '#value' => 'title test'); - $this->assertEqual('title test'."\n", theme_html_tag($tag), 'Test title tag generation.'); + $this->assertElements($elements); } } @@ -500,3 +581,99 @@ class ThemeRegistryTestCase extends DrupalWebTestCase { $this->assertTrue($registry['theme_test_template_test_2'], 'Offset was returned correctly from the theme registry'); } } + +/** + * Tests for theme debug markup. + */ +class ThemeDebugMarkupTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Theme debug markup', + 'description' => 'Tests theme debug markup output.', + 'group' => 'Theme', + ); + } + + function setUp() { + parent::setUp('theme_test', 'node'); + theme_enable(array('test_theme')); + } + + /** + * Tests debug markup added to template output. + */ + function testDebugOutput() { + variable_set('theme_default', 'test_theme'); + // Enable the debug output. + variable_set('theme_debug', TRUE); + + $registry = theme_get_registry(); + $extension = '.tpl.php'; + // Populate array of templates. + $templates = drupal_find_theme_templates($registry, $extension, drupal_get_path('theme', 'test_theme')); + $templates += drupal_find_theme_templates($registry, $extension, drupal_get_path('module', 'node')); + + // Create a node and test different features of the debug markup. + $node = $this->drupalCreateNode(); + $this->drupalGet('node/' . $node->nid); + $this->assertRaw('', 'Theme debug markup found in theme output when debug is enabled.'); + $this->assertRaw("CALL: theme('node')", 'Theme call information found.'); + $this->assertRaw('x node--1' . $extension . PHP_EOL . ' * node--page' . $extension . PHP_EOL . ' * node' . $extension, 'Suggested template files found in order and node ID specific template shown as current template.'); + $template_filename = $templates['node__1']['path'] . '/' . $templates['node__1']['template'] . $extension; + $this->assertRaw("BEGIN OUTPUT from '$template_filename'", 'Full path to current template file found.'); + + // Create another node and make sure the template suggestions shown in the + // debug markup are correct. + $node2 = $this->drupalCreateNode(); + $this->drupalGet('node/' . $node2->nid); + $this->assertRaw('* node--2' . $extension . PHP_EOL . ' * node--page' . $extension . PHP_EOL . ' x node' . $extension, 'Suggested template files found in order and base template shown as current template.'); + + // Create another node and make sure the template suggestions shown in the + // debug markup are correct. + $node3 = $this->drupalCreateNode(); + $build = array('#theme' => 'node__foo__bar'); + $build += node_view($node3); + $output = drupal_render($build); + $this->assertTrue(strpos($output, "CALL: theme('node__foo__bar')") !== FALSE, 'Theme call information found.'); + $this->assertTrue(strpos($output, '* node--foo--bar' . $extension . PHP_EOL . ' * node--foo' . $extension . PHP_EOL . ' * node--3' . $extension . PHP_EOL . ' * node--page' . $extension . PHP_EOL . ' x node' . $extension) !== FALSE, 'Suggested template files found in order and base template shown as current template.'); + + // Disable theme debug. + variable_set('theme_debug', FALSE); + + $this->drupalGet('node/' . $node->nid); + $this->assertNoRaw('', 'Theme debug markup not found in theme output when debug is disabled.'); + } + +} + +/** + * Tests module-provided theme engines. + */ +class ModuleProvidedThemeEngineTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Theme engine test', + 'description' => 'Tests module-provided theme engines.', + 'group' => 'Theme', + ); + } + + function setUp() { + parent::setUp('theme_test'); + theme_enable(array('test_theme', 'test_theme_nyan_cat')); + } + + /** + * Ensures that the module provided theme engine is found and used by core. + */ + function testEngineIsFoundAndWorking() { + variable_set('theme_default', 'test_theme_nyan_cat'); + variable_set('admin_theme', 'test_theme_nyan_cat'); + + $this->drupalGet('theme-test/engine-info-test'); + $this->assertText('Miaou'); + } + +} diff --git a/site/modules/simpletest/tests/theme_test.info b/site/modules/simpletest/tests/theme_test.info index cb2761f..ee68377 100644 --- a/site/modules/simpletest/tests/theme_test.info +++ b/site/modules/simpletest/tests/theme_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/theme_test.module b/site/modules/simpletest/tests/theme_test.module index 61a12bb..1dbc3b9 100644 --- a/site/modules/simpletest/tests/theme_test.module +++ b/site/modules/simpletest/tests/theme_test.module @@ -27,9 +27,18 @@ function theme_test_system_theme_info() { $themes['test_theme'] = drupal_get_path('module', 'theme_test') . '/themes/test_theme/test_theme.info'; $themes['test_basetheme'] = drupal_get_path('module', 'theme_test') . '/themes/test_basetheme/test_basetheme.info'; $themes['test_subtheme'] = drupal_get_path('module', 'theme_test') . '/themes/test_subtheme/test_subtheme.info'; + $themes['test_theme_nyan_cat'] = drupal_get_path('module', 'theme_test') . '/themes/test_theme_nyan_cat/test_theme_nyan_cat.info'; return $themes; } +/** + * Implements hook_system_theme_engine_info(). + */ +function theme_test_system_theme_engine_info() { + $theme_engines['nyan_cat'] = drupal_get_path('module', 'theme_test') . '/themes/engines/nyan_cat/nyan_cat.engine'; + return $theme_engines; +} + /** * Implements hook_menu(). */ @@ -53,6 +62,17 @@ function theme_test_menu() { 'access callback' => TRUE, 'type' => MENU_CALLBACK, ); + $items['theme-test/drupal-add-region-content'] = array( + 'page callback' => '_theme_test_drupal_add_region_content', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + $items['theme-test/engine-info-test'] = array( + 'description' => "Serves a simple page rendered using a Nyan Cat theme engine template.", + 'page callback' => '_theme_test_engine_info_test', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); return $items; } @@ -126,6 +146,23 @@ function _theme_test_suggestion() { return theme(array('theme_test__suggestion', 'theme_test'), array()); } +/** + * Page callback, calls drupal_add_region_content. + */ +function _theme_test_drupal_add_region_content() { + drupal_add_region_content('content', 'World'); + return 'Hello'; +} + +/** + * Serves a simple page renderered using a Nyan Cat theme engine template. + */ +function _theme_test_engine_info_test() { + return array( + '#markup' => theme('theme_test_template_test'), + ); +} + /** * Theme function for testing theme('theme_test_foo'). */ diff --git a/site/modules/simpletest/tests/themes/engines/nyan_cat/nyan_cat.engine b/site/modules/simpletest/tests/themes/engines/nyan_cat/nyan_cat.engine new file mode 100644 index 0000000..1b8ffef --- /dev/null +++ b/site/modules/simpletest/tests/themes/engines/nyan_cat/nyan_cat.engine @@ -0,0 +1,53 @@ +filename) . '/template.theme'; + if (file_exists($file)) { + include_once DRUPAL_ROOT . '/' . $file; + } +} + +/** + * Implements hook_theme(). + */ +function nyan_cat_theme($existing, $type, $theme, $path) { + $templates = drupal_find_theme_functions($existing, array($theme)); + $templates += drupal_find_theme_templates($existing, '.nyan-cat.html', $path); + return $templates; +} + +/** + * Implements hook_extension(). + */ +function nyan_cat_extension() { + return '.nyan-cat.html'; +} + +/** + * Implements hook_render_template(). + * + * @param string $template_file + * The filename of the template to render. + * @param mixed[] $variables + * A keyed array of variables that will appear in the output. + * + * @return string + * The output generated by the template. + */ +function nyan_cat_render_template($template_file, $variables) { + $output = str_replace('div', 'nyancat', file_get_contents(DRUPAL_ROOT . '/' . $template_file)); + foreach ($variables as $key => $variable) { + if (strpos($output, '9' . $key) !== FALSE) { + $output = str_replace('9' . $key, $variable, $output); + } + } + return $output; +} diff --git a/site/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info b/site/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info index 34160a0..718830f 100644 --- a/site/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info +++ b/site/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info @@ -6,8 +6,7 @@ hidden = TRUE settings[basetheme_only] = base theme value settings[subtheme_override] = base theme value -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info b/site/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info index 307f546..17b6fd1 100644 --- a/site/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info +++ b/site/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info @@ -6,8 +6,7 @@ hidden = TRUE settings[subtheme_override] = subtheme value -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/themes/test_theme/templates/node--1.tpl.php b/site/modules/simpletest/tests/themes/test_theme/templates/node--1.tpl.php new file mode 100644 index 0000000..87aa794 --- /dev/null +++ b/site/modules/simpletest/tests/themes/test_theme/templates/node--1.tpl.php @@ -0,0 +1,2 @@ + +Node Content Dummy diff --git a/site/modules/simpletest/tests/themes/test_theme/test_theme.info b/site/modules/simpletest/tests/themes/test_theme/test_theme.info index 1a9cae4..b57bc12 100644 --- a/site/modules/simpletest/tests/themes/test_theme/test_theme.info +++ b/site/modules/simpletest/tests/themes/test_theme/test_theme.info @@ -17,8 +17,7 @@ stylesheets[all][] = system.base.css settings[theme_test_setting] = default value -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/themes/test_theme_nyan_cat/templates/theme_test_template_test.nyan-cat.html b/site/modules/simpletest/tests/themes/test_theme_nyan_cat/templates/theme_test_template_test.nyan-cat.html new file mode 100644 index 0000000..7202dd4 --- /dev/null +++ b/site/modules/simpletest/tests/themes/test_theme_nyan_cat/templates/theme_test_template_test.nyan-cat.html @@ -0,0 +1 @@ +Miaou \ No newline at end of file diff --git a/site/modules/simpletest/tests/themes/test_theme_nyan_cat/test_theme_nyan_cat.info b/site/modules/simpletest/tests/themes/test_theme_nyan_cat/test_theme_nyan_cat.info new file mode 100644 index 0000000..29a66bc --- /dev/null +++ b/site/modules/simpletest/tests/themes/test_theme_nyan_cat/test_theme_nyan_cat.info @@ -0,0 +1,10 @@ +name = Nyan cat engine based test theme +description = Theme for testing the module-provided theme engines. +core = 7.x +hidden = TRUE +engine = nyan_cat + +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" +project = "drupal" +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/update_script_test.info b/site/modules/simpletest/tests/update_script_test.info index 3ba2c70..a84f716 100644 --- a/site/modules/simpletest/tests/update_script_test.info +++ b/site/modules/simpletest/tests/update_script_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/update_script_test.install b/site/modules/simpletest/tests/update_script_test.install index 6955ef1..4024fb4 100644 --- a/site/modules/simpletest/tests/update_script_test.install +++ b/site/modules/simpletest/tests/update_script_test.install @@ -31,6 +31,19 @@ function update_script_test_requirements($phase) { 'severity' => REQUIREMENT_ERROR, ); break; + case REQUIREMENT_INFO: + $requirements['update_script_test_stop'] = array( + 'title' => 'Update script test stop', + 'value' => 'Error', + 'description' => 'This is a requirements error provided by the update_script_test module to stop the page redirect for the info.', + 'severity' => REQUIREMENT_ERROR, + ); + $requirements['update_script_test'] = array( + 'title' => 'Update script test', + 'description' => 'This is a requirements info provided by the update_script_test module.', + 'severity' => REQUIREMENT_INFO, + ); + break; } } diff --git a/site/modules/simpletest/tests/update_test_1.info b/site/modules/simpletest/tests/update_test_1.info index 978a07a..c9d4661 100644 --- a/site/modules/simpletest/tests/update_test_1.info +++ b/site/modules/simpletest/tests/update_test_1.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/update_test_2.info b/site/modules/simpletest/tests/update_test_2.info index 978a07a..c9d4661 100644 --- a/site/modules/simpletest/tests/update_test_2.info +++ b/site/modules/simpletest/tests/update_test_2.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/update_test_3.info b/site/modules/simpletest/tests/update_test_3.info index 978a07a..c9d4661 100644 --- a/site/modules/simpletest/tests/update_test_3.info +++ b/site/modules/simpletest/tests/update_test_3.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/upgrade/drupal-6.filled.database.php b/site/modules/simpletest/tests/upgrade/drupal-6.filled.database.php index a916281..10b9040 100644 --- a/site/modules/simpletest/tests/upgrade/drupal-6.filled.database.php +++ b/site/modules/simpletest/tests/upgrade/drupal-6.filled.database.php @@ -19919,7 +19919,7 @@ 'vid' => '1', 'name' => 'vocabulary 1 (i=0)', 'description' => 'description of vocabulary 1 (i=0)', - 'help' => '', + 'help' => 'help for vocabulary 1 (i=0)', 'relations' => '1', 'hierarchy' => '0', 'multiple' => '0', @@ -19932,7 +19932,7 @@ 'vid' => '2', 'name' => 'vocabulary 2 (i=1)', 'description' => 'description of vocabulary 2 (i=1)', - 'help' => '', + 'help' => 'help for vocabulary 2 (i=1)', 'relations' => '1', 'hierarchy' => '1', 'multiple' => '1', @@ -19945,7 +19945,7 @@ 'vid' => '3', 'name' => 'vocabulary 3 (i=2)', 'description' => 'description of vocabulary 3 (i=2)', - 'help' => '', + 'help' => 'help for vocabulary 3 (i=2)', 'relations' => '1', 'hierarchy' => '2', 'multiple' => '0', @@ -19958,7 +19958,7 @@ 'vid' => '4', 'name' => 'vocabulary 4 (i=3)', 'description' => 'description of vocabulary 4 (i=3)', - 'help' => '', + 'help' => 'help for vocabulary 4 (i=3)', 'relations' => '1', 'hierarchy' => '0', 'multiple' => '1', @@ -19971,7 +19971,7 @@ 'vid' => '5', 'name' => 'vocabulary 5 (i=4)', 'description' => 'description of vocabulary 5 (i=4)', - 'help' => '', + 'help' => 'help for vocabulary 5 (i=4)', 'relations' => '1', 'hierarchy' => '1', 'multiple' => '0', @@ -19984,7 +19984,7 @@ 'vid' => '6', 'name' => 'vocabulary 6 (i=5)', 'description' => 'description of vocabulary 6 (i=5)', - 'help' => '', + 'help' => 'help for vocabulary 6 (i=5)', 'relations' => '1', 'hierarchy' => '2', 'multiple' => '1', @@ -19997,7 +19997,7 @@ 'vid' => '7', 'name' => 'vocabulary 7 (i=6)', 'description' => 'description of vocabulary 7 (i=6)', - 'help' => '', + 'help' => 'help for vocabulary 7 (i=6)', 'relations' => '1', 'hierarchy' => '0', 'multiple' => '0', @@ -20010,7 +20010,7 @@ 'vid' => '8', 'name' => 'vocabulary 8 (i=7)', 'description' => 'description of vocabulary 8 (i=7)', - 'help' => '', + 'help' => 'help for vocabulary 8 (i=7)', 'relations' => '1', 'hierarchy' => '1', 'multiple' => '1', @@ -20023,7 +20023,7 @@ 'vid' => '9', 'name' => 'vocabulary 9 (i=8)', 'description' => 'description of vocabulary 9 (i=8)', - 'help' => '', + 'help' => 'help for vocabulary 9 (i=8)', 'relations' => '1', 'hierarchy' => '2', 'multiple' => '0', @@ -20036,7 +20036,7 @@ 'vid' => '10', 'name' => 'vocabulary 10 (i=9)', 'description' => 'description of vocabulary 10 (i=9)', - 'help' => '', + 'help' => 'help for vocabulary 10 (i=9)', 'relations' => '1', 'hierarchy' => '0', 'multiple' => '1', @@ -20049,7 +20049,7 @@ 'vid' => '11', 'name' => 'vocabulary 11 (i=10)', 'description' => 'description of vocabulary 11 (i=10)', - 'help' => '', + 'help' => 'help for vocabulary 11 (i=10)', 'relations' => '1', 'hierarchy' => '1', 'multiple' => '0', @@ -20062,7 +20062,7 @@ 'vid' => '12', 'name' => 'vocabulary 12 (i=11)', 'description' => 'description of vocabulary 12 (i=11)', - 'help' => '', + 'help' => 'help for vocabulary 12 (i=11)', 'relations' => '1', 'hierarchy' => '2', 'multiple' => '1', @@ -20075,7 +20075,7 @@ 'vid' => '13', 'name' => 'vocabulary 13 (i=12)', 'description' => 'description of vocabulary 13 (i=12)', - 'help' => '', + 'help' => 'help for vocabulary 13 (i=12)', 'relations' => '1', 'hierarchy' => '0', 'multiple' => '0', @@ -20088,7 +20088,7 @@ 'vid' => '14', 'name' => 'vocabulary 14 (i=13)', 'description' => 'description of vocabulary 14 (i=13)', - 'help' => '', + 'help' => 'help for vocabulary 14 (i=13)', 'relations' => '1', 'hierarchy' => '1', 'multiple' => '1', @@ -20101,7 +20101,7 @@ 'vid' => '15', 'name' => 'vocabulary 15 (i=14)', 'description' => 'description of vocabulary 15 (i=14)', - 'help' => '', + 'help' => 'help for vocabulary 15 (i=14)', 'relations' => '1', 'hierarchy' => '2', 'multiple' => '0', @@ -20114,7 +20114,7 @@ 'vid' => '16', 'name' => 'vocabulary 16 (i=15)', 'description' => 'description of vocabulary 16 (i=15)', - 'help' => '', + 'help' => 'help for vocabulary 16 (i=15)', 'relations' => '1', 'hierarchy' => '0', 'multiple' => '1', @@ -20127,7 +20127,7 @@ 'vid' => '17', 'name' => 'vocabulary 17 (i=16)', 'description' => 'description of vocabulary 17 (i=16)', - 'help' => '', + 'help' => 'help for vocabulary 17 (i=16)', 'relations' => '1', 'hierarchy' => '1', 'multiple' => '0', @@ -20140,7 +20140,7 @@ 'vid' => '18', 'name' => 'vocabulary 18 (i=17)', 'description' => 'description of vocabulary 18 (i=17)', - 'help' => '', + 'help' => 'help for vocabulary 18 (i=17)', 'relations' => '1', 'hierarchy' => '2', 'multiple' => '1', @@ -20153,7 +20153,7 @@ 'vid' => '19', 'name' => 'vocabulary 19 (i=18)', 'description' => 'description of vocabulary 19 (i=18)', - 'help' => '', + 'help' => 'help for vocabulary 19 (i=18)', 'relations' => '1', 'hierarchy' => '0', 'multiple' => '0', @@ -20166,7 +20166,7 @@ 'vid' => '20', 'name' => 'vocabulary 20 (i=19)', 'description' => 'description of vocabulary 20 (i=19)', - 'help' => '', + 'help' => 'help for vocabulary 20 (i=19)', 'relations' => '1', 'hierarchy' => '1', 'multiple' => '1', @@ -20179,7 +20179,7 @@ 'vid' => '21', 'name' => 'vocabulary 21 (i=20)', 'description' => 'description of vocabulary 21 (i=20)', - 'help' => '', + 'help' => 'help for vocabulary 21 (i=20)', 'relations' => '1', 'hierarchy' => '2', 'multiple' => '0', @@ -20192,7 +20192,7 @@ 'vid' => '22', 'name' => 'vocabulary 22 (i=21)', 'description' => 'description of vocabulary 22 (i=21)', - 'help' => '', + 'help' => 'help for vocabulary 22 (i=21)', 'relations' => '1', 'hierarchy' => '0', 'multiple' => '1', @@ -20205,7 +20205,7 @@ 'vid' => '23', 'name' => 'vocabulary 23 (i=22)', 'description' => 'description of vocabulary 23 (i=22)', - 'help' => '', + 'help' => 'help for vocabulary 23 (i=22)', 'relations' => '1', 'hierarchy' => '1', 'multiple' => '0', @@ -20218,7 +20218,7 @@ 'vid' => '24', 'name' => 'vocabulary 24 (i=23)', 'description' => 'description of vocabulary 24 (i=23)', - 'help' => '', + 'help' => 'help for vocabulary 24 (i=23)', 'relations' => '1', 'hierarchy' => '2', 'multiple' => '1', diff --git a/site/modules/simpletest/tests/upgrade/drupal-6.upload.database.php b/site/modules/simpletest/tests/upgrade/drupal-6.upload.database.php index 46ebe2c..3fd602a 100644 --- a/site/modules/simpletest/tests/upgrade/drupal-6.upload.database.php +++ b/site/modules/simpletest/tests/upgrade/drupal-6.upload.database.php @@ -127,6 +127,38 @@ 'status' => '1', 'timestamp' => '1285708958', )) +// On some Drupal 6 sites, more than one file can have the same filepath. See +// https://www.drupal.org/node/1260938. +->values(array( + 'fid' => '12', + 'uid' => '1', + 'filename' => 'duplicate-name.png', + 'filepath' => 'sites/default/files/duplicate-name.png', + 'filemime' => 'image/png', + 'filesize' => '314', + 'status' => '1', + 'timestamp' => '1285708958', +)) +->values(array( + 'fid' => '13', + 'uid' => '1', + 'filename' => 'duplicate-name.png', + 'filepath' => 'sites/default/files/duplicate-name.png', + 'filemime' => 'image/png', + 'filesize' => '315', + 'status' => '1', + 'timestamp' => '1285708958', +)) +->values(array( + 'fid' => '14', + 'uid' => '1', + 'filename' => 'duplicate-name.png', + 'filepath' => 'sites/default/files/duplicate-name.png', + 'filemime' => 'image/png', + 'filesize' => '316', + 'status' => '1', + 'timestamp' => '1285708958', +)) ->execute(); db_insert('node')->fields(array( @@ -196,6 +228,23 @@ 'sticky' => '0', 'tnid' => '0', 'translate' => '0', +)) +->values(array( + 'nid' => '41', + 'vid' => '55', + 'type' => 'page', + 'language' => '', + 'title' => 'node title 41 revision 55', + 'uid' => '1', + 'status' => '1', + 'created' => '1285709012', + 'changed' => '1285709012', + 'comment' => '0', + 'promote' => '0', + 'moderate' => '0', + 'sticky' => '0', + 'tnid' => '0', + 'translate' => '0', )) ->execute(); @@ -253,6 +302,28 @@ 'log' => '', 'timestamp' => '1285709012', 'format' => '1', +)) +->values(array( + 'nid' => '41', + 'vid' => '54', + 'uid' => '1', + 'title' => 'node title 41 revision 54', + 'body' => "Attachments:\r\nduplicate-name.png", + 'teaser' => "Attachments:\r\nduplicate-name.png", + 'log' => '', + 'timestamp' => '1285709012', + 'format' => '1', +)) +->values(array( + 'nid' => '41', + 'vid' => '55', + 'uid' => '1', + 'title' => 'node title 41 revision 55', + 'body' => "Attachments:\r\nduplicate-name.png\r\nduplicate-name.png", + 'teaser' => "Attachments:\r\nduplicate-name.png\r\nduplicate-name.png", + 'log' => '', + 'timestamp' => '1285709012', + 'format' => '1', )) ->execute(); @@ -415,6 +486,30 @@ 'list' => '1', 'weight' => '0', )) +->values(array( + 'fid' => '12', + 'nid' => '41', + 'vid' => '54', + 'description' => 'duplicate-name.png', + 'list' => '1', + 'weight' => '0', +)) +->values(array( + 'fid' => '13', + 'nid' => '41', + 'vid' => '55', + 'description' => 'first description', + 'list' => '0', + 'weight' => '0', +)) +->values(array( + 'fid' => '14', + 'nid' => '41', + 'vid' => '55', + 'description' => 'second description', + 'list' => '1', + 'weight' => '0', +)) ->execute(); // Add series of entries for invalid node vids to the {upload} table. @@ -431,7 +526,7 @@ ->values(array( 'fid' => $i, 'nid' => '40', - 'vid' => 24 + $i, + 'vid' => 26 + $i, 'description' => 'crazy-basename.png', 'list' => '1', 'weight' => '0', @@ -440,7 +535,7 @@ ->values(array( 'fid' => 2, 'nid' => '40', - 'vid' => 24 + $i + 1, + 'vid' => 26 + $i + 1, 'description' => 'crazy-basename.png', 'list' => '1', 'weight' => '0', diff --git a/site/modules/simpletest/tests/upgrade/upgrade.taxonomy.test b/site/modules/simpletest/tests/upgrade/upgrade.taxonomy.test index e0142f4..51402ed 100644 --- a/site/modules/simpletest/tests/upgrade/upgrade.taxonomy.test +++ b/site/modules/simpletest/tests/upgrade/upgrade.taxonomy.test @@ -56,6 +56,11 @@ class UpgradePathTaxonomyTestCase extends UpgradePathTestCase { $this->assertFalse(db_table_exists('taxonomy_vocabulary_node_type'), 'taxonomy_vocabulary_node_type has been removed.'); $this->assertFalse(db_table_exists('taxonomy_term_node'), 'taxonomy_term_node has been removed.'); + // Check that taxonomy_index has not stored nids of unpublished nodes. + $nids = db_query('SELECT nid from {node} WHERE status = :status', array(':status' => NODE_NOT_PUBLISHED))->fetchCol(); + $indexed_nids = db_query('SELECT DISTINCT nid from {taxonomy_index}')->fetchCol(); + $this->assertFalse(array_intersect($nids, $indexed_nids), 'No unpublished nid present in taxonomy_index'); + // Check that the node type 'page' has been associated to a taxonomy // reference field for each vocabulary. $voc_keys = array(); @@ -69,9 +74,10 @@ class UpgradePathTaxonomyTestCase extends UpgradePathTestCase { $this->assertEqual($voc_keys, $inst_keys, 'Node type page has instances for every vocabulary.'); // Ensure instance variables are getting through. - foreach ($instances as $instance) { - $this->assertTrue(isset($instance['required']), 'The required setting was preserved during the upgrade path.'); - $this->assertTrue($instance['description'], 'The description was preserved during the upgrade path'); + foreach (array_unique($instances) as $instance) { + $field_instance = field_info_instance('node', $instance, 'page'); + $this->assertTrue(isset($field_instance['required']), 'The required setting was preserved during the upgrade path.'); + $this->assertTrue($field_instance['description'], 'The description was preserved during the upgrade path'); } // Node type 'story' was not explicitly in $vocabulary->nodes but diff --git a/site/modules/simpletest/tests/upgrade/upgrade.upload.test b/site/modules/simpletest/tests/upgrade/upgrade.upload.test index be352bd..dfa94a0 100644 --- a/site/modules/simpletest/tests/upgrade/upgrade.upload.test +++ b/site/modules/simpletest/tests/upgrade/upgrade.upload.test @@ -64,12 +64,35 @@ class UploadUpgradePathTestCase extends UpgradePathTestCase { } $this->assertIdentical($filenames, $recorded_filenames, 'The uploaded files are present in the same order after the upgrade.'); } + // Test for the file with repeating basename to only have the streaming // path replaced. $node = node_load(40, 53); $repeated_basename_file = $node->upload[LANGUAGE_NONE][4]; $this->assertEqual($repeated_basename_file['uri'], 'private://drupal-6/file/directory/path/crazy-basename.png', "The file with the repeated basename path only had the stream portion replaced"); + // Ensure that filepaths are deduplicated. + $node0 = node_load(41, 54); + $node1 = node_load(41, 55); + // Ensure that both revisions point to the same file ID. + $items0 = field_get_items('node', $node0, 'upload'); + $this->assertEqual(count($items0), 1); + $items1 = field_get_items('node', $node1, 'upload'); + $this->assertEqual(count($items1), 2); + $this->assertEqual($items0[0]['fid'], $items1[0]['fid']); + $this->assertEqual($items0[0]['fid'], $items1[1]['fid']); + // The revision with more than one reference to the same file should retain + // the original settings for each reference. + $this->assertEqual($items1[0]['description'], 'first description'); + $this->assertEqual($items1[0]['display'], 0); + $this->assertEqual($items1[1]['description'], 'second description'); + $this->assertEqual($items1[1]['display'], 1); + // Ensure that the latest version of the files are used. + $this->assertEqual($items1[0]['filesize'], 316); + $this->assertEqual($items1[1]['filesize'], 316); + // No duplicate files should remain on the Drupal 7 site. + $this->assertEqual(0, db_query("SELECT COUNT(*) FROM {file_managed} GROUP BY uri HAVING COUNT(fid) > 1")->fetchField()); + // Make sure the file settings were properly migrated. $d6_file_directory_temp = '/drupal-6/file/directory/temp'; $d6_file_directory_path = '/drupal-6/file/directory/path'; diff --git a/site/modules/simpletest/tests/url_alter_test.info b/site/modules/simpletest/tests/url_alter_test.info index 78b12d6..98436f8 100644 --- a/site/modules/simpletest/tests/url_alter_test.info +++ b/site/modules/simpletest/tests/url_alter_test.info @@ -5,8 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/simpletest/tests/xmlrpc.test b/site/modules/simpletest/tests/xmlrpc.test index 1a0fd86..bb74f05 100644 --- a/site/modules/simpletest/tests/xmlrpc.test +++ b/site/modules/simpletest/tests/xmlrpc.test @@ -211,6 +211,11 @@ class XMLRPCMessagesTestCase extends DrupalWebTestCase { * Make sure that XML-RPC can transfer large messages. */ function testSizedMessages() { + // These tests can produce up to 128 x 160 words in the XML-RPC message + // (see xmlrpc_test_message_sized_in_kb()) with 4 tags used to represent + // each. Set a large enough tag limit to allow this to be tested. + variable_set('xmlrpc_message_maximum_tag_count', 100000); + $xml_url = url(NULL, array('absolute' => TRUE)) . 'xmlrpc.php'; $sizes = array(8, 80, 160); foreach ($sizes as $size) { @@ -241,4 +246,38 @@ class XMLRPCMessagesTestCase extends DrupalWebTestCase { $this->assertEqual($removed, 'system.methodSignature', 'Hiding builting system.methodSignature with hook_xmlrpc_alter works'); } + /** + * Test limits on system.multicall that can prevent brute-force attacks. + */ + function testMulticallLimit() { + $url = url(NULL, array('absolute' => TRUE)) . 'xmlrpc.php'; + $multicall_args = array(); + $num_method_calls = 10; + for ($i = 0; $i < $num_method_calls; $i++) { + $struct = array('i' => $i); + $multicall_args[] = array('methodName' => 'validator1.echoStructTest', 'params' => array($struct)); + } + // Test limits of 1, 5, 9, 13. + for ($limit = 1; $limit < $num_method_calls + 4; $limit += 4) { + variable_set('xmlrpc_multicall_duplicate_method_limit', $limit); + $results = xmlrpc($url, array('system.multicall' => array($multicall_args))); + $this->assertEqual($num_method_calls, count($results)); + for ($i = 0; $i < min($limit, $num_method_calls); $i++) { + $x = array_shift($results); + $this->assertTrue(empty($x->is_error), "Result $i is not an error"); + $this->assertEqual($multicall_args[$i]['params'][0], $x); + } + for (; $i < $num_method_calls; $i++) { + $x = array_shift($results); + $this->assertFalse(empty($x->is_error), "Result $i is an error"); + $this->assertEqual(-156579, $x->code); + } + } + variable_set('xmlrpc_multicall_duplicate_method_limit', -1); + $results = xmlrpc($url, array('system.multicall' => array($multicall_args))); + $this->assertEqual($num_method_calls, count($results)); + foreach ($results as $i => $x) { + $this->assertTrue(empty($x->is_error), "Result $i is not an error"); + } + } } diff --git a/site/modules/simpletest/tests/xmlrpc_test.info b/site/modules/simpletest/tests/xmlrpc_test.info index 5c749c7..f0a21cc 100644 --- a/site/modules/simpletest/tests/xmlrpc_test.info +++ b/site/modules/simpletest/tests/xmlrpc_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/statistics/statistics.admin.inc b/site/modules/statistics/statistics.admin.inc index 415fd00..f061081 100644 --- a/site/modules/statistics/statistics.admin.inc +++ b/site/modules/statistics/statistics.admin.inc @@ -59,7 +59,7 @@ function statistics_recent_hits() { * statistics settings form, but is dependent on cron running. * * @return - * A render array containing information about the the top pages. + * A render array containing information about the top pages. */ function statistics_top_pages() { $header = array( @@ -137,7 +137,8 @@ function statistics_top_visitors() { ->groupBy('u.name') ->groupBy('bl.iid') ->limit(30) - ->orderByHeader($header); + ->orderByHeader($header) + ->orderBy('a.hostname'); $uniques_query = db_select('accesslog')->distinct(); $uniques_query->fields('accesslog', array('uid', 'hostname')); @@ -263,9 +264,7 @@ function statistics_access_log($aid) { ); return $build; } - else { - drupal_not_found(); - } + return MENU_NOT_FOUND; } /** @@ -305,6 +304,17 @@ function statistics_settings_form() { '#default_value' => variable_get('statistics_count_content_views', 0), '#description' => t('Increment a counter each time content is viewed.'), ); + $form['content']['statistics_count_content_views_ajax'] = array( + '#type' => 'checkbox', + '#title' => t('Use Ajax to increment the counter'), + '#default_value' => variable_get('statistics_count_content_views_ajax', 0), + '#description' => t('Perform the count asynchronously after page load rather than during page generation.'), + '#states' => array( + 'disabled' => array( + ':input[name="statistics_count_content_views"]' => array('checked' => FALSE), + ), + ), + ); return system_settings_form($form); } diff --git a/site/modules/statistics/statistics.info b/site/modules/statistics/statistics.info index b3ca7c0..5d13982 100644 --- a/site/modules/statistics/statistics.info +++ b/site/modules/statistics/statistics.info @@ -6,8 +6,7 @@ core = 7.x files[] = statistics.test configure = admin/config/system/statistics -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/statistics/statistics.install b/site/modules/statistics/statistics.install index b857435..231c90e 100644 --- a/site/modules/statistics/statistics.install +++ b/site/modules/statistics/statistics.install @@ -11,6 +11,7 @@ function statistics_uninstall() { // Remove variables. variable_del('statistics_count_content_views'); + variable_del('statistics_count_content_views_ajax'); variable_del('statistics_enable_access_log'); variable_del('statistics_flush_accesslog_timer'); variable_del('statistics_day_timestamp'); diff --git a/site/modules/statistics/statistics.js b/site/modules/statistics/statistics.js new file mode 100644 index 0000000..b7c5615 --- /dev/null +++ b/site/modules/statistics/statistics.js @@ -0,0 +1,10 @@ +(function ($) { + $(document).ready(function() { + $.ajax({ + type: "POST", + cache: false, + url: Drupal.settings.statistics.url, + data: Drupal.settings.statistics.data + }); + }); +})(jQuery); diff --git a/site/modules/statistics/statistics.module b/site/modules/statistics/statistics.module index 81d24b7..356a0e2 100644 --- a/site/modules/statistics/statistics.module +++ b/site/modules/statistics/statistics.module @@ -57,7 +57,7 @@ function statistics_exit() { // in which case we need to bootstrap to the session phase anyway. drupal_bootstrap(DRUPAL_BOOTSTRAP_VARIABLES); - if (variable_get('statistics_count_content_views', 0)) { + if (variable_get('statistics_count_content_views', 0) && !variable_get('statistics_count_content_views_ajax', 0)) { // We are counting content views. if (arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == NULL) { // A node has been viewed, so update the node's counters. @@ -115,6 +115,21 @@ function statistics_permission() { * Implements hook_node_view(). */ function statistics_node_view($node, $view_mode) { + // Attach Ajax node count statistics if configured. + if (variable_get('statistics_count_content_views', 0) && variable_get('statistics_count_content_views_ajax', 0)) { + if (!empty($node->nid) && $view_mode == 'full' && node_is_page($node) && empty($node->in_preview)) { + $statistics = drupal_get_path('module', 'statistics') . '/statistics.js'; + $node->content['#attached']['js'][$statistics] = array( + 'scope' => 'footer', + ); + $settings = array('data' => array('nid' => $node->nid), 'url' => url(drupal_get_path('module', 'statistics') . '/statistics.php')); + $node->content['#attached']['js'][] = array( + 'data' => array('statistics' => $settings), + 'type' => 'setting', + ); + } + } + if ($view_mode != 'rss') { if (user_access('view post access counter')) { $statistics = statistics_get($node->nid); @@ -230,7 +245,7 @@ function statistics_user_delete($account) { * Implements hook_cron(). */ function statistics_cron() { - $statistics_timestamp = variable_get('statistics_day_timestamp', ''); + $statistics_timestamp = variable_get('statistics_day_timestamp', 0); if ((REQUEST_TIME - $statistics_timestamp) >= 86400) { // Reset day counts. diff --git a/site/modules/statistics/statistics.pages.inc b/site/modules/statistics/statistics.pages.inc index 8bd9712..dd50aae 100644 --- a/site/modules/statistics/statistics.pages.inc +++ b/site/modules/statistics/statistics.pages.inc @@ -54,9 +54,7 @@ function statistics_node_tracker() { $build['statistics_pager'] = array('#theme' => 'pager'); return $build; } - else { - drupal_not_found(); - } + return MENU_NOT_FOUND; } /** @@ -99,7 +97,5 @@ function statistics_user_tracker() { $build['statistics_pager'] = array('#theme' => 'pager'); return $build; } - else { - drupal_not_found(); - } + return MENU_NOT_FOUND; } diff --git a/site/modules/statistics/statistics.php b/site/modules/statistics/statistics.php new file mode 100644 index 0000000..48340c8 --- /dev/null +++ b/site/modules/statistics/statistics.php @@ -0,0 +1,33 @@ +key(array('nid' => $nid)) + ->fields(array( + 'daycount' => 1, + 'totalcount' => 1, + 'timestamp' => REQUEST_TIME, + )) + ->expression('daycount', 'daycount + 1') + ->expression('totalcount', 'totalcount + 1') + ->execute(); + } + } +} diff --git a/site/modules/statistics/statistics.test b/site/modules/statistics/statistics.test index d2155da..50accd7 100644 --- a/site/modules/statistics/statistics.test +++ b/site/modules/statistics/statistics.test @@ -35,7 +35,7 @@ class StatisticsTestCase extends DrupalWebTestCase { 'title' => 'test', 'path' => 'node/1', 'url' => 'http://example.com', - 'hostname' => '192.168.1.1', + 'hostname' => '1.2.3.3', 'uid' => 0, 'sid' => 10, 'timer' => 10, @@ -118,6 +118,22 @@ class StatisticsLoggingTestCase extends DrupalWebTestCase { $node_counter = statistics_get($this->node->nid); $this->assertIdentical($node_counter['totalcount'], '3'); + // Test that Ajax logging doesn't occur when disabled. + $post = http_build_query(array('nid' => $this->node->nid)); + $headers = array('Content-Type' => 'application/x-www-form-urlencoded'); + global $base_url; + $stats_path = $base_url . '/' . drupal_get_path('module', 'statistics'). '/statistics.php'; + drupal_http_request($stats_path, array('method' => 'POST', 'data' => $post, 'headers' => $headers, 'timeout' => 10000)); + $node_counter = statistics_get($this->node->nid); + $this->assertIdentical($node_counter['totalcount'], '3', 'Page request was not counted via Ajax.'); + + // Test that Ajax logging occurs when enabled. + variable_set('statistics_count_content_views_ajax', 1); + drupal_http_request($stats_path, array('method' => 'POST', 'data' => $post, 'headers' => $headers, 'timeout' => 10000)); + $node_counter = statistics_get($this->node->nid); + $this->assertIdentical($node_counter['totalcount'], '4', 'Page request was counted via Ajax.'); + variable_set('statistics_count_content_views_ajax', 0); + // Visit edit page to generate a title greater than 255. $path = 'node/' . $this->node->nid . '/edit'; $expected = array( @@ -142,7 +158,6 @@ class StatisticsLoggingTestCase extends DrupalWebTestCase { $log = db_query('SELECT * FROM {accesslog}')->fetchAll(PDO::FETCH_ASSOC); $this->assertTrue(is_array($log) && count($log) == 8, 'Page request was logged for a path over 255 characters.'); $this->assertEqual($log[7]['path'], truncate_utf8($long_path, 255)); - } } @@ -253,7 +268,7 @@ class StatisticsBlockVisitorsTestCase extends StatisticsTestCase { */ function testIPAddressBlocking() { // IP address for testing. - $test_ip_address = '192.168.1.1'; + $test_ip_address = '1.2.3.3'; // Verify the IP address from accesslog appears on the top visitors page // and that a 'block IP address' link is displayed. @@ -399,7 +414,7 @@ class StatisticsAdminTestCase extends DrupalWebTestCase { $timestamp = time(); $this->drupalPost(NULL, NULL, t('Cancel account')); // Confirm account cancellation request. - $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login)); + $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)); $this->assertFalse(user_load($account->uid, TRUE), 'User is not found in the database.'); $this->drupalGet('admin/reports/visitors'); diff --git a/site/modules/syslog/syslog.info b/site/modules/syslog/syslog.info index 542ec71..5e1aae5 100644 --- a/site/modules/syslog/syslog.info +++ b/site/modules/syslog/syslog.info @@ -6,8 +6,7 @@ core = 7.x files[] = syslog.test configure = admin/config/development/logging -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/system/form.api.php b/site/modules/system/form.api.php new file mode 100644 index 0000000..3cfec86 --- /dev/null +++ b/site/modules/system/form.api.php @@ -0,0 +1,126 @@ +fetchField(); + } + + // For this example, we decide that we can safely process + // 5 nodes at a time without a timeout. + $limit = 5; + + // With each pass through the callback, retrieve the next group of nids. + $result = db_query_range("SELECT nid FROM {node} WHERE nid > %d ORDER BY nid ASC", $context['sandbox']['current_node'], 0, $limit); + while ($row = db_fetch_array($result)) { + + // Here we actually perform our processing on the current node. + $node = node_load($row['nid'], NULL, TRUE); + $node->value1 = $options1; + $node->value2 = $options2; + node_save($node); + + // Store some result for post-processing in the finished callback. + $context['results'][] = check_plain($node->title); + + // Update our progress information. + $context['sandbox']['progress']++; + $context['sandbox']['current_node'] = $node->nid; + $context['message'] = t('Now processing %node', array('%node' => $node->title)); + } + + // Inform the batch engine that we are not finished, + // and provide an estimation of the completion level we reached. + if ($context['sandbox']['progress'] != $context['sandbox']['max']) { + $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; + } +} + +/** + * Complete a batch process. + * + * Callback for batch_set(). + * + * This callback may be specified in a batch to perform clean-up operations, or + * to analyze the results of the batch operations. + * + * @param $success + * A boolean indicating whether the batch has completed successfully. + * @param $results + * The value set in $context['results'] by callback_batch_operation(). + * @param $operations + * If $success is FALSE, contains the operations that remained unprocessed. + */ +function callback_batch_finished($success, $results, $operations) { + if ($success) { + // Here we do something meaningful with the results. + $message = t("!count items were processed.", array( + '!count' => count($results), + )); + $message .= theme('item_list', array('items' => $results)); + drupal_set_message($message); + } + else { + // An error occurred. + // $operations contains the operations that remained unprocessed. + $error_operation = reset($operations); + $message = t('An error occurred while processing %error_operation with arguments: @arguments', array( + '%error_operation' => $error_operation[0], + '@arguments' => print_r($error_operation[1], TRUE) + )); + drupal_set_message($message, 'error'); + } +} diff --git a/site/modules/system/image.gd.inc b/site/modules/system/image.gd.inc index 91c0b05..3d0797e 100644 --- a/site/modules/system/image.gd.inc +++ b/site/modules/system/image.gd.inc @@ -56,13 +56,8 @@ function image_gd_settings_validate($form, &$form_state) { * A boolean indicating if the GD toolkit is available on this machine. */ function image_gd_check_settings() { - if ($check = get_extension_funcs('gd')) { - if (in_array('imagegd2', $check)) { - // GD2 support is available. - return TRUE; - } - } - return FALSE; + // GD2 support is available. + return function_exists('imagegd2'); } /** @@ -121,38 +116,62 @@ function image_gd_rotate(stdClass $image, $degrees, $background = NULL) { return FALSE; } - $width = $image->info['width']; - $height = $image->info['height']; + // PHP 5.5 GD bug: https://bugs.php.net/bug.php?id=65148: To prevent buggy + // behavior on negative multiples of 90 degrees we convert any negative + // angle to a positive one between 0 and 360 degrees. + $degrees -= floor($degrees / 360) * 360; - // Convert the hexadecimal background value to a color index value. + // Convert the hexadecimal background value to a RGBA array. if (isset($background)) { - $rgb = array(); - for ($i = 16; $i >= 0; $i -= 8) { - $rgb[] = (($background >> $i) & 0xFF); - } - $background = imagecolorallocatealpha($image->resource, $rgb[0], $rgb[1], $rgb[2], 0); + $background = array( + 'red' => $background >> 16 & 0xFF, + 'green' => $background >> 8 & 0xFF, + 'blue' => $background & 0xFF, + 'alpha' => 0, + ); } - // Set the background color as transparent if $background is NULL. else { - // Get the current transparent color. - $background = imagecolortransparent($image->resource); - - // If no transparent colors, use white. - if ($background == 0) { - $background = imagecolorallocatealpha($image->resource, 255, 255, 255, 0); - } + // Background color is not specified: use transparent white as background. + $background = array( + 'red' => 255, + 'green' => 255, + 'blue' => 255, + 'alpha' => 127 + ); } + // Store the color index for the background as that is what GD uses. + $background_idx = imagecolorallocatealpha($image->resource, $background['red'], $background['green'], $background['blue'], $background['alpha']); + // Images are assigned a new color palette when rotating, removing any // transparency flags. For GIF images, keep a record of the transparent color. if ($image->info['extension'] == 'gif') { - $transparent_index = imagecolortransparent($image->resource); - if ($transparent_index != 0) { - $transparent_gif_color = imagecolorsforindex($image->resource, $transparent_index); + // GIF does not work with a transparency channel, but can define 1 color + // in its palette to act as transparent. + + // Get the current transparent color, if any. + $gif_transparent_id = imagecolortransparent($image->resource); + if ($gif_transparent_id !== -1) { + // The gif already has a transparent color set: remember it to set it on + // the rotated image as well. + $transparent_gif_color = imagecolorsforindex($image->resource, $gif_transparent_id); + + if ($background['alpha'] >= 127) { + // We want a transparent background: use the color already set to act + // as transparent, as background. + $background_idx = $gif_transparent_id; + } + } + else { + // The gif does not currently have a transparent color set. + if ($background['alpha'] >= 127) { + // But as the background is transparent, it should get one. + $transparent_gif_color = $background; + } } } - $image->resource = imagerotate($image->resource, 360 - $degrees, $background); + $image->resource = imagerotate($image->resource, 360 - $degrees, $background_idx); // GIFs need to reassign the transparent color after performing the rotate. if (isset($transparent_gif_color)) { @@ -234,7 +253,24 @@ function image_gd_desaturate(stdClass $image) { function image_gd_load(stdClass $image) { $extension = str_replace('jpg', 'jpeg', $image->info['extension']); $function = 'imagecreatefrom' . $extension; - return (function_exists($function) && $image->resource = $function($image->source)); + if (function_exists($function) && $image->resource = $function($image->source)) { + if (imageistruecolor($image->resource)) { + return TRUE; + } + else { + // Convert indexed images to truecolor, copying the image to a new + // truecolor resource, so that filters work correctly and don't result + // in unnecessary dither. + $resource = image_gd_create_tmp($image, $image->info['width'], $image->info['height']); + if ($resource) { + imagecopy($resource, $image->resource, 0, 0, 0, 0, imagesx($resource), imagesy($resource)); + imagedestroy($image->resource); + $image->resource = $resource; + } + } + return (bool) $image->resource; + } + return FALSE; } /** @@ -302,17 +338,31 @@ function image_gd_create_tmp(stdClass $image, $width, $height) { $res = imagecreatetruecolor($width, $height); if ($image->info['extension'] == 'gif') { - // Grab transparent color index from image resource. + // Find out if a transparent color is set, will return -1 if no + // transparent color has been defined in the image. $transparent = imagecolortransparent($image->resource); if ($transparent >= 0) { - // The original must have a transparent color, allocate to the new image. - $transparent_color = imagecolorsforindex($image->resource, $transparent); - $transparent = imagecolorallocate($res, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']); - - // Flood with our new transparent color. - imagefill($res, 0, 0, $transparent); - imagecolortransparent($res, $transparent); + // Find out the number of colors in the image palette. It will be 0 for + // truecolor images. + $palette_size = imagecolorstotal($image->resource); + if ($palette_size == 0 || $transparent < $palette_size) { + // Set the transparent color in the new resource, either if it is a + // truecolor image or if the transparent color is part of the palette. + // Since the index of the transparency color is a property of the + // image rather than of the palette, it is possible that an image + // could be created with this index set outside the palette size (see + // http://stackoverflow.com/a/3898007). + $transparent_color = imagecolorsforindex($image->resource, $transparent); + $transparent = imagecolorallocate($res, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']); + + // Flood with our new transparent color. + imagefill($res, 0, 0, $transparent); + imagecolortransparent($res, $transparent); + } + else { + imagefill($res, 0, 0, imagecolorallocate($res, 255, 255, 255)); + } } } elseif ($image->info['extension'] == 'png') { @@ -346,7 +396,7 @@ function image_gd_create_tmp(stdClass $image, $width, $height) { */ function image_gd_get_info(stdClass $image) { $details = FALSE; - $data = getimagesize($image->source); + $data = @getimagesize($image->source); if (isset($data) && is_array($data)) { $extensions = array('1' => 'gif', '2' => 'jpg', '3' => 'png'); diff --git a/site/modules/system/language.api.php b/site/modules/system/language.api.php index d868b6f..40bb3f3 100644 --- a/site/modules/system/language.api.php +++ b/site/modules/system/language.api.php @@ -111,18 +111,18 @@ function hook_language_types_info_alter(array &$language_types) { * * @return * An associative array of language negotiation provider definitions. The keys - * are provider identifiers, and the values are associative arrays definining + * are provider identifiers, and the values are associative arrays defining * each provider, with the following elements: * - types: An array of allowed language types. If a language negotiation * provider does not specify which language types it should be used with, it * will be available for all the configurable language types. * - callbacks: An associative array of functions that will be called to * perform various tasks. Possible elements are: - * - negotiation: (required) Name of the callback function that determines - * the language value. - * - language_switch: (optional) Name of the callback function that - * determines links for a language switcher block associated with this - * provider. See language_switcher_url() for an example. + * - language: (required) Name of the callback function that determines the + * language value. + * - switcher: (optional) Name of the callback function that determines + * links for a language switcher block associated with this provider. See + * language_switcher_url() for an example. * - url_rewrite: (optional) Name of the callback function that provides URL * rewriting, if needed by this provider. * - file: The file where callback functions are defined (this file will be diff --git a/site/modules/system/system.admin.inc b/site/modules/system/system.admin.inc index 05543be..cdcc78f 100644 --- a/site/modules/system/system.admin.inc +++ b/site/modules/system/system.admin.inc @@ -309,7 +309,7 @@ function system_theme_enable() { } drupal_goto('admin/appearance'); } - return drupal_access_denied(); + return MENU_ACCESS_DENIED; } /** @@ -337,7 +337,7 @@ function system_theme_disable() { } drupal_goto('admin/appearance'); } - return drupal_access_denied(); + return MENU_ACCESS_DENIED; } /** @@ -383,7 +383,7 @@ function system_theme_default() { } drupal_goto('admin/appearance'); } - return drupal_access_denied(); + return MENU_ACCESS_DENIED; } /** @@ -640,13 +640,13 @@ function system_theme_settings_validate($form, &$form_state) { // If the user provided a path for a logo or favicon file, make sure a file // exists at that path. - if ($form_state['values']['logo_path']) { + if (!empty($form_state['values']['logo_path'])) { $path = _system_theme_settings_validate_path($form_state['values']['logo_path']); if (!$path) { form_set_error('logo_path', t('The custom logo path is invalid.')); } } - if ($form_state['values']['favicon_path']) { + if (!empty($form_state['values']['favicon_path'])) { $path = _system_theme_settings_validate_path($form_state['values']['favicon_path']); if (!$path) { form_set_error('favicon_path', t('The custom favicon path is invalid.')); @@ -703,14 +703,16 @@ function system_theme_settings_submit($form, &$form_state) { // If the user uploaded a new logo or favicon, save it to a permanent location // and use it in place of the default theme-provided file. - if ($file = $values['logo_upload']) { + if (!empty($values['logo_upload'])) { + $file = $values['logo_upload']; unset($values['logo_upload']); $filename = file_unmanaged_copy($file->uri); $values['default_logo'] = 0; $values['logo_path'] = $filename; $values['toggle_logo'] = 1; } - if ($file = $values['favicon_upload']) { + if (!empty($values['favicon_upload'])) { + $file = $values['favicon_upload']; unset($values['favicon_upload']); $filename = file_unmanaged_copy($file->uri); $values['default_favicon'] = 0; @@ -950,7 +952,11 @@ function system_sort_modules_by_info_name($a, $b) { } /** - * Array sorting callback; sorts modules or themes by their name. + * Sorts themes by their names, with the default theme listed first. + * + * Callback for uasort() within system_themes_page(). + * + * @see system_sort_modules_by_info_name(). */ function system_sort_themes($a, $b) { if ($a->is_default) { @@ -995,22 +1001,28 @@ function _system_modules_build_row($info, $extra) { $status_short = ''; $status_long = ''; + // Initialize empty arrays of long and short reasons explaining why the + // module is incompatible. + // Add each reason as a separate element in both the arrays. + $reasons_short = array(); + $reasons_long = array(); + // Check the core compatibility. if (!isset($info['core']) || $info['core'] != DRUPAL_CORE_COMPATIBILITY) { $compatible = FALSE; - $status_short .= t('Incompatible with this version of Drupal core.'); - $status_long .= t('This version is not compatible with Drupal !core_version and should be replaced.', array('!core_version' => DRUPAL_CORE_COMPATIBILITY)); + $reasons_short[] = t('Incompatible with this version of Drupal core.'); + $reasons_long[] = t('This version is not compatible with Drupal !core_version and should be replaced.', array('!core_version' => DRUPAL_CORE_COMPATIBILITY)); } // Ensure this module is compatible with the currently installed version of PHP. if (version_compare(phpversion(), $info['php']) < 0) { $compatible = FALSE; - $status_short .= t('Incompatible with this version of PHP'); + $reasons_short[] = t('Incompatible with this version of PHP'); $php_required = $info['php']; if (substr_count($info['php'], '.') < 2) { $php_required .= '.*'; } - $status_long .= t('This module requires PHP version @php_required and is incompatible with PHP version !php_version.', array('@php_required' => $php_required, '!php_version' => phpversion())); + $reasons_long[] = t('This module requires PHP version @php_required and is incompatible with PHP version !php_version.', array('@php_required' => $php_required, '!php_version' => phpversion())); } // If this module is compatible, present a checkbox indicating @@ -1026,6 +1038,8 @@ function _system_modules_build_row($info, $extra) { } } else { + $status_short = implode(' ', $reasons_short); + $status_long = implode(' ', $reasons_long); $form['enable'] = array( '#markup' => theme('image', array('path' => 'misc/watchdog-error.png', 'alt' => $status_short, 'title' => $status_short)), ); @@ -1618,6 +1632,7 @@ function system_cron_settings() { $form['cron']['cron_safe_threshold'] = array( '#type' => 'select', '#title' => t('Run cron every'), + '#description' => t('More information about setting up scheduled tasks can be found by reading the cron tutorial on drupal.org.', array('@url' => url('http://drupal.org/cron'))), '#default_value' => variable_get('cron_safe_threshold', DRUPAL_CRON_DEFAULT_THRESHOLD), '#options' => array(0 => t('Never')) + drupal_map_assoc(array(3600, 10800, 21600, 43200, 86400, 604800), 'format_interval'), ); @@ -1841,7 +1856,7 @@ function system_image_toolkit_settings() { if (count($toolkits_available) == 0) { variable_del('image_toolkit'); $form['image_toolkit_help'] = array( - '#markup' => t("No image toolkits were detected. Drupal includes support for PHP's built-in image processing functions but they were not detected on this system. You should consult your system administrator to have them enabled, or try using a third party toolkit.", array('gd-link' => url('http://php.net/gd'))), + '#markup' => t("No image toolkits were detected. Drupal includes support for PHP's built-in image processing functions but they were not detected on this system. You should consult your system administrator to have them enabled, or try using a third party toolkit.", array('!gd-link' => url('http://php.net/gd'))), ); return $form; } @@ -2187,6 +2202,11 @@ function system_add_date_format_type_form_submit($form, &$form_state) { * Return the date for a given format string via Ajax. */ function system_date_time_lookup() { + // This callback is protected with a CSRF token because user input from the + // query string is reflected in the output. + if (!isset($_GET['token']) || !drupal_valid_token($_GET['token'], 'admin/config/regional/date-time/formats/lookup')) { + return MENU_ACCESS_DENIED; + } $result = format_date(REQUEST_TIME, 'custom', $_GET['format']); drupal_json_output($result); } @@ -2575,8 +2595,10 @@ function theme_status_report($variables) { foreach ($requirements as $requirement) { if (empty($requirement['#type'])) { - $severity = $severities[isset($requirement['severity']) ? (int) $requirement['severity'] : 0]; + $severity = $severities[isset($requirement['severity']) ? (int) $requirement['severity'] : REQUIREMENT_OK]; $severity['icon'] = '
                          ' . $severity['title'] . '
                          '; + // The requirement's 'value' key is optional, provide a default value. + $requirement['value'] = isset($requirement['value']) ? $requirement['value'] : ''; // Output table row(s) if (!empty($requirement['description'])) { @@ -2631,8 +2653,8 @@ function theme_system_modules_fieldset($variables) { } $row[] = array('data' => $description, 'class' => array('description')); // Display links (such as help or permissions) in their own columns. - foreach (array('help', 'permissions', 'configure') as $key) { - $row[] = array('data' => drupal_render($module['links'][$key]), 'class' => array($key)); + foreach (array('help', 'permissions', 'configure') as $link_type) { + $row[] = array('data' => drupal_render($module['links'][$link_type]), 'class' => array($link_type)); } $rows[] = $row; } @@ -2860,13 +2882,14 @@ function system_date_time_formats() { * Allow users to add additional date formats. */ function system_configure_date_formats_form($form, &$form_state, $dfid = 0) { + $ajax_path = 'admin/config/regional/date-time/formats/lookup'; $js_settings = array( 'type' => 'setting', 'data' => array( 'dateTime' => array( 'date-format' => array( 'text' => t('Displayed as'), - 'lookup' => url('admin/config/regional/date-time/formats/lookup'), + 'lookup' => url($ajax_path, array('query' => array('token' => drupal_get_token($ajax_path)))), ), ), ), diff --git a/site/modules/system/system.api.php b/site/modules/system/system.api.php index 2c529d4..f1855b9 100644 --- a/site/modules/system/system.api.php +++ b/site/modules/system/system.api.php @@ -113,21 +113,21 @@ function hook_hook_info_alter(&$hooks) { * translation handlers. Array keys are the module names, array values * can be any data structure the module uses to provide field translation. * Any empty value disallows the module to appear as a translation handler. - * - entity keys: An array describing how the Field API can extract the - * information it needs from the objects of the type. Elements: + * - entity keys: (optional) An array describing how the Field API can extract + * the information it needs from the objects of the type. Elements: * - id: The name of the property that contains the primary id of the * entity. Every entity object passed to the Field API must have this * property and its value must be numeric. * - revision: The name of the property that contains the revision id of * the entity. The Field API assumes that all revision ids are unique * across all entities of a type. This entry can be omitted if the - * entities of this type are not versionable. + * entities of this type are not versionable. Defaults to an empty string. * - bundle: The name of the property that contains the bundle name for the * entity. The bundle name defines which set of fields are attached to * the entity (e.g. what nodes call "content type"). This entry can be * omitted if this entity type exposes a single bundle (all entities have * the same collection of fields). The name of this single bundle will be - * the same as the entity type. + * the same as the entity type. Defaults to an empty string. * - label: The name of the property that contains the entity label. For * example, if the entity's label is located in $entity->subject, then * 'subject' should be specified here. If complex logic is required to @@ -247,7 +247,7 @@ function hook_entity_info() { 'custom settings' => FALSE, ), 'search_result' => array( - 'label' => t('Search result'), + 'label' => t('Search result highlighting input'), 'custom settings' => FALSE, ), ); @@ -606,11 +606,13 @@ function hook_cron() { * @return * An associative array where the key is the queue name and the value is * again an associative array. Possible keys are: - * - 'worker callback': The name of the function to call. It will be called - * with one argument, the item created via DrupalQueue::createItem() in - * hook_cron(). + * - 'worker callback': The name of an implementation of + * callback_queue_worker(). * - 'time': (optional) How much time Drupal should spend on calling this * worker in seconds. Defaults to 15. + * - 'skip on cron': (optional) Set to TRUE to avoid being processed during + * cron runs (for example, if you want to control all queue execution + * manually). * * @see hook_cron() * @see hook_cron_queue_info_alter() @@ -873,7 +875,7 @@ function hook_css_alter(&$css) { * * @see ajax_render() */ -function hook_ajax_render_alter($commands) { +function hook_ajax_render_alter(&$commands) { // Inject any new status messages into the content area. $commands[] = ajax_command_prepend('#block-system-main .content', theme('status_messages')); } @@ -1795,6 +1797,8 @@ function hook_form_BASE_FORM_ID_alter(&$form, &$form_state, $form_id) { * the $form_id input matched your module's format for dynamically-generated * form IDs, and if so, act appropriately. * + * Third, forms defined in classes can be defined this way. + * * @param $form_id * The unique string identifying the desired form. * @param $args @@ -1805,19 +1809,22 @@ function hook_form_BASE_FORM_ID_alter(&$form, &$form_state, $form_id) { * @return * An associative array whose keys define form_ids and whose values are an * associative array defining the following keys: - * - callback: The name of the form builder function to invoke. This will be - * used for the base form ID, for example, to target a base form using - * hook_form_BASE_FORM_ID_alter(). + * - callback: The callable returning the form array. If it is the name of + * the form builder function then this will be used for the base + * form ID, for example, to target a base form using + * hook_form_BASE_FORM_ID_alter(). Otherwise use the base_form_id key to + * define the base form ID. * - callback arguments: (optional) Additional arguments to pass to the * function defined in 'callback', which are prepended to $args. - * - wrapper_callback: (optional) The name of a form builder function to - * invoke before the form builder defined in 'callback' is invoked. This - * wrapper callback may prepopulate the $form array with form elements, - * which will then be already contained in the $form that is passed on to - * the form builder defined in 'callback'. For example, a wrapper callback - * could setup wizard-alike form buttons that are the same for a variety of - * forms that belong to the wizard, which all share the same wrapper - * callback. + * - base_form_id: The base form ID can be specified explicitly. This is + * required when callback is not the name of a function. + * - wrapper_callback: (optional) Any callable to invoke before the form + * builder defined in 'callback' is invoked. This wrapper callback may + * prepopulate the $form array with form elements, which will then be + * already contained in the $form that is passed on to the form builder + * defined in 'callback'. For example, a wrapper callback could setup + * wizard-like form buttons that are the same for a variety of forms that + * belong to the wizard, which all share the same wrapper callback. */ function hook_forms($form_id, $args) { // Simply reroute the (non-existing) $form_id 'mymodule_first_form' to @@ -1841,6 +1848,15 @@ function hook_forms($form_id, $args) { 'wrapper_callback' => 'mymodule_main_form_wrapper', ); + // Build a form with a static class callback. + $forms['mymodule_class_generated_form'] = array( + // This will call: MyClass::generateMainForm(). + 'callback' => array('MyClass', 'generateMainForm'), + // The base_form_id is required when the callback is a static function in + // a class. This can also be used to keep newer code backwards compatible. + 'base_form_id' => 'mymodule_main_form', + ); + return $forms; } @@ -1888,9 +1904,8 @@ function hook_init() { /** * Define image toolkits provided by this module. * - * The file which includes each toolkit's functions must be declared as part of - * the files array in the module .info file so that the registry will find and - * parse it. + * The file which includes each toolkit's functions must be included in this + * hook. * * The toolkit's functions must be named image_toolkitname_operation(). * where the operation may be: @@ -2035,6 +2050,22 @@ function hook_system_theme_info() { return $themes; } +/** + * Return additional theme engines provided by modules. + * + * This hook is invoked from _system_rebuild_theme_data() and allows modules to + * register additional theme engines outside of the regular 'themes/engines' + * directories of a Drupal installation. + * + * @return + * An associative array. Each key is the system name of a theme engine and + * each value is the corresponding path to the theme engine's .engine file. + */ +function hook_system_theme_engine_info() { + $theme_engines['izumi'] = drupal_get_path('module', 'mymodule') . '/izumi/izumi.engine'; + return $theme_engines; +} + /** * Alter the information parsed from module and theme .info files * @@ -2107,6 +2138,61 @@ function hook_permission() { ); } +/** + * Provide online user help. + * + * By implementing hook_help(), a module can make documentation available to + * the user for the module as a whole, or for specific paths. Help for + * developers should usually be provided via function header comments in the + * code, or in special API example files. + * + * The page-specific help information provided by this hook appears as a system + * help block on that page. The module overview help information is displayed + * by the Help module. It can be accessed from the page at admin/help or from + * the Modules page. + * + * For detailed usage examples of: + * - Module overview help, see node_help(). Module overview help should follow + * @link https://drupal.org/node/632280 the standard help template. @endlink + * - Page-specific help with simple paths, see dashboard_help(). + * - Page-specific help using wildcards in path and $arg, see node_help() + * and block_help(). + * + * @param $path + * The router menu path, as defined in hook_menu(), for the help that is + * being requested; e.g., 'admin/people' or 'user/register'. If the router + * path includes a wildcard, then this will appear in $path as %, even if it + * is a named %autoloader wildcard in the hook_menu() implementation; for + * example, node pages would have $path equal to 'node/%' or 'node/%/view'. + * For the help page for the module as a whole, $path will have the value + * 'admin/help#module_name', where 'module_name" is the machine name of your + * module. + * @param $arg + * An array that corresponds to the return value of the arg() function, for + * modules that want to provide help that is specific to certain values + * of wildcards in $path. For example, you could provide help for the path + * 'user/1' by looking for the path 'user/%' and $arg[1] == '1'. This given + * array should always be used rather than directly invoking arg(), because + * your hook implementation may be called for other purposes besides building + * the current page's help. Note that depending on which module is invoking + * hook_help, $arg may contain only empty strings. Regardless, $arg[0] to + * $arg[11] will always be set. + * + * @return + * A localized string containing the help text. + */ +function hook_help($path, $arg) { + switch ($path) { + // Main module help for the block module + case 'admin/help#block': + return '

                          ' . t('Blocks are boxes of content rendered into an area, or region, of a web page. The default theme Bartik, for example, implements the regions "Sidebar first", "Sidebar second", "Featured", "Content", "Header", "Footer", etc., and a block may appear in any one of these areas. The blocks administration page provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions.', array('@blocks' => url('admin/structure/block'))) . '

                          '; + + // Help for another path in the block module + case 'admin/structure/block': + return '

                          ' . t('This page provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions. Since not all themes implement the same regions, or display regions in the same way, blocks are positioned on a per-theme basis. Remember that your changes will not be saved until you click the Save blocks button at the bottom of the page.') . '

                          '; + } +} + /** * Register a module (or theme's) theme implementations. * @@ -2576,6 +2662,8 @@ function hook_flush_caches() { * module_enable() for a detailed description of the order in which install and * enable hooks are invoked. * + * This hook should be implemented in a .module file, not in an .install file. + * * @param $modules * An array of the modules that were installed. * @@ -3098,37 +3186,41 @@ function hook_requirements($phase) { /** * Define the current version of the database schema. * - * A Drupal schema definition is an array structure representing one or - * more tables and their related keys and indexes. A schema is defined by + * A Drupal schema definition is an array structure representing one or more + * tables and their related keys and indexes. A schema is defined by * hook_schema() which must live in your module's .install file. * - * This hook is called at install and uninstall time, and in the latter - * case, it cannot rely on the .module file being loaded or hooks being known. - * If the .module file is needed, it may be loaded with drupal_load(). + * This hook is called at install and uninstall time, and in the latter case, it + * cannot rely on the .module file being loaded or hooks being known. If the + * .module file is needed, it may be loaded with drupal_load(). * - * The tables declared by this hook will be automatically created when - * the module is first enabled, and removed when the module is uninstalled. - * This happens before hook_install() is invoked, and after hook_uninstall() - * is invoked, respectively. + * The tables declared by this hook will be automatically created when the + * module is first enabled, and removed when the module is uninstalled. This + * happens before hook_install() is invoked, and after hook_uninstall() is + * invoked, respectively. * * By declaring the tables used by your module via an implementation of * hook_schema(), these tables will be available on all supported database * engines. You don't have to deal with the different SQL dialects for table * creation and alteration of the supported database engines. * - * See the Schema API Handbook at http://drupal.org/node/146843 for - * details on schema definition structures. + * See the Schema API Handbook at http://drupal.org/node/146843 for details on + * schema definition structures. Note that foreign key definitions are for + * documentation purposes only; foreign keys are not created in the database, + * nor are they enforced by Drupal. * - * @return + * @return array * A schema definition structure array. For each element of the * array, the key is a table name and the value is a table structure * definition. * + * @see hook_schema_alter() + * * @ingroup schemaapi */ function hook_schema() { $schema['node'] = array( - // example (partial) specification for table "node" + // Example (partial) specification for table "node". 'description' => 'The base table for nodes.', 'fields' => array( 'nid' => array( @@ -3167,6 +3259,8 @@ function hook_schema() { 'nid_vid' => array('nid', 'vid'), 'vid' => array('vid'), ), + // For documentation purposes only; foreign keys are not created in the + // database. 'foreign keys' => array( 'node_revision' => array( 'table' => 'node_revision', @@ -3367,24 +3461,31 @@ function hook_install() { * hooks. See @link update_api Update versions of API functions @endlink for * details. * - * If your update task is potentially time-consuming, you'll need to implement a - * multipass update to avoid PHP timeouts. Multipass updates use the $sandbox - * parameter provided by the batch API (normally, $context['sandbox']) to store - * information between successive calls, and the $sandbox['#finished'] value - * to provide feedback regarding completion level. - * - * See the batch operations page for more information on how to use the - * @link http://drupal.org/node/180528 Batch API. @endlink - * - * @param $sandbox + * The $sandbox parameter should be used when a multipass update is needed, in + * circumstances where running the whole update at once could cause PHP to + * timeout. Each pass is run in a way that avoids PHP timeouts, provided each + * pass remains under the timeout limit. To signify that an update requires + * at least one more pass, set $sandbox['#finished'] to a number less than 1 + * (you need to do this each pass). The value of $sandbox['#finished'] will be + * unset between passes but all other data in $sandbox will be preserved. The + * system will stop iterating this update when $sandbox['#finished'] is left + * unset or set to a number higher than 1. It is recommended that + * $sandbox['#finished'] is initially set to 0, and then updated each pass to a + * number between 0 and 1 that represents the overall % completed for this + * update, finishing with 1. + * + * See the @link batch Batch operations topic @endlink for more information on + * how to use the Batch API. + * + * @param array $sandbox * Stores information for multipass updates. See above for more information. * - * @throws DrupalUpdateException, PDOException + * @throws DrupalUpdateException|PDOException * In case of error, update hooks should throw an instance of DrupalUpdateException * with a meaningful message for the user. If a database query fails for whatever * reason, it will throw a PDOException. * - * @return + * @return string|null * Optionally, update hooks may return a translated string that will be * displayed to the user after the update has completed. If no message is * returned, no message will be presented to the user. @@ -3628,8 +3729,9 @@ function hook_registry_files_alter(&$files, $modules) { * * Any tasks you define here will be run, in order, after the installer has * finished the site configuration step but before it has moved on to the - * final import of languages and the end of the installation. You can have any - * number of custom tasks to perform during this phase. + * final import of languages and the end of the installation. This is invoked + * by install_tasks(). You can have any number of custom tasks to perform + * during this phase. * * Each task you define here corresponds to a callback function which you must * separately define and which is called when your task is run. This function @@ -3722,6 +3824,8 @@ function hook_registry_files_alter(&$files, $modules) { * * @see install_state_defaults() * @see batch_set() + * @see hook_install_tasks_alter() + * @see install_tasks() */ function hook_install_tasks(&$install_state) { // Here, we define a variable to allow tasks to indicate that a particular, @@ -3824,6 +3928,8 @@ function hook_html_head_alter(&$head_elements) { /** * Alter the full list of installation tasks. * + * This hook is invoked on the install profile in install_tasks(). + * * @param $tasks * An array of all available installation tasks, including those provided by * Drupal core. You can modify this array to change or replace any part of @@ -3831,6 +3937,9 @@ function hook_html_head_alter(&$head_elements) { * is selected. * @param $install_state * An array of information about the current installation state. + * + * @see hook_install_tasks() + * @see install_tasks() */ function hook_install_tasks_alter(&$tasks, $install_state) { // Replace the "Choose language" installation task provided by Drupal core @@ -4095,7 +4204,7 @@ function hook_date_format_types_alter(&$types) { * declared in an implementation of hook_date_format_types(). * - 'format': A PHP date format string to use when formatting dates. It * can contain any of the formatting options described at - * http://php.net/manual/en/function.date.php + * http://php.net/manual/function.date.php * - 'locales': (optional) An array of 2 and 5 character locale codes, * defining which locales this format applies to (for example, 'en', * 'en-us', etc.). If your date format is not language-specific, leave this @@ -4717,6 +4826,28 @@ function hook_filetransfer_info_alter(&$filetransfer_info) { * @{ */ +/** + * Work on a single queue item. + * + * Callback for hook_cron_queue_info(). + * + * @param $queue_item_data + * The data that was passed to DrupalQueueInterface::createItem() when the + * item was queued. + * + * @throws Exception + * The worker callback may throw an exception to indicate there was a problem. + * The cron process will log the exception, and leave the item in the queue to + * be processed again later. + * + * @see drupal_cron_run() + */ +function callback_queue_worker($queue_item_data) { + $node = node_load($queue_item_data); + $node->title = 'Updated title'; + node_save($node); +} + /** * Return the URI for an entity. * diff --git a/site/modules/system/system.base-rtl.css b/site/modules/system/system.base-rtl.css index 075cafe..79d6302 100644 --- a/site/modules/system/system.base-rtl.css +++ b/site/modules/system/system.base-rtl.css @@ -9,10 +9,10 @@ */ /* Animated throbber */ html.js input.form-autocomplete { - background-position: 0% 2px; + background-position: 0% center; } html.js input.throbbing { - background-position: 0% -18px; + background-position: 0% center; } /** diff --git a/site/modules/system/system.base.css b/site/modules/system/system.base.css index 412b18a..7e9220d 100644 --- a/site/modules/system/system.base.css +++ b/site/modules/system/system.base.css @@ -31,12 +31,13 @@ } /* Animated throbber */ html.js input.form-autocomplete { - background-image: url(../../misc/throbber.gif); - background-position: 100% 2px; /* LTR */ + background-image: url(../../misc/throbber-inactive.png); + background-position: 100% center; /* LTR */ background-repeat: no-repeat; } html.js input.throbbing { - background-position: 100% -18px; /* LTR */ + background-image: url(../../misc/throbber-active.gif); + background-position: 100% center; /* LTR */ } /** @@ -164,7 +165,7 @@ table.sticky-header { display: inline-block; } .ajax-progress .throbber { - background: transparent url(../../misc/throbber.gif) no-repeat 0px -18px; + background: transparent url(../../misc/throbber-active.gif) no-repeat 0px center; float: left; /* LTR */ height: 15px; margin: 2px; diff --git a/site/modules/system/system.info b/site/modules/system/system.info index eb9b96c..7914ef2 100644 --- a/site/modules/system/system.info +++ b/site/modules/system/system.info @@ -12,8 +12,7 @@ files[] = system.test required = TRUE configure = admin/config/system -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/system/system.install b/site/modules/system/system.install index a58e855..d5e6743 100644 --- a/site/modules/system/system.install +++ b/site/modules/system/system.install @@ -6,12 +6,7 @@ */ /** - * Test and report Drupal installation requirements. - * - * @param $phase - * The current system installation phase. - * @return - * An array of system requirements. + * Implements hook_requirements(). */ function system_requirements($phase) { global $base_url; @@ -165,7 +160,7 @@ function system_requirements($phase) { if (empty($drivers)) { $database_ok = FALSE; $pdo_message = $t('Your web server does not appear to support any common PDO database extensions. Check with your hosting provider to see if they support PDO (PHP Data Objects) and offer any databases that Drupal supports.', array( - '@drupal-databases' => 'http://drupal.org/node/270#database', + '@drupal-databases' => 'https://www.drupal.org/requirements/database', )); } // Make sure the native PDO extension is available, not the older PEAR @@ -201,6 +196,12 @@ function system_requirements($phase) { ); } + // Test database-specific multi-byte UTF-8 related requirements. + $charset_requirements = _system_check_db_utf8mb4_requirements($phase); + if (!empty($charset_requirements)) { + $requirements['database_charset'] = $charset_requirements; + } + // Test PHP memory_limit $memory_limit = ini_get('memory_limit'); $requirements['php_memory_limit'] = array( @@ -258,6 +259,39 @@ function system_requirements($phase) { $requirements['settings.php']['title'] = $t('Configuration file'); } + // Test the contents of the .htaccess files. + if ($phase == 'runtime') { + // Try to write the .htaccess files first, to prevent false alarms in case + // (for example) the /tmp directory was wiped. + file_ensure_htaccess(); + $htaccess_files['public://.htaccess'] = array( + 'title' => $t('Public files directory'), + 'directory' => variable_get('file_public_path', conf_path() . '/files'), + ); + if ($private_files_directory = variable_get('file_private_path')) { + $htaccess_files['private://.htaccess'] = array( + 'title' => $t('Private files directory'), + 'directory' => $private_files_directory, + ); + } + $htaccess_files['temporary://.htaccess'] = array( + 'title' => $t('Temporary files directory'), + 'directory' => variable_get('file_temporary_path', file_directory_temp()), + ); + foreach ($htaccess_files as $htaccess_file => $info) { + // Check for the string which was added to the recommended .htaccess file + // in the latest security update. + if (!file_exists($htaccess_file) || !($contents = @file_get_contents($htaccess_file)) || strpos($contents, 'Drupal_Security_Do_Not_Remove_See_SA_2013_003') === FALSE) { + $requirements[$htaccess_file] = array( + 'title' => $info['title'], + 'value' => $t('Not fully protected'), + 'severity' => REQUIREMENT_ERROR, + 'description' => $t('See @url for information about the recommended .htaccess file which should be added to the %directory directory to help protect against arbitrary code execution.', array('@url' => 'http://drupal.org/SA-CORE-2013-003', '%directory' => $info['directory'])), + ); + } + } + } + // Report cron status. if ($phase == 'runtime') { // Cron warning threshold defaults to two days. @@ -489,6 +523,75 @@ function system_requirements($phase) { return $requirements; } +/** + * Checks whether the requirements for multi-byte UTF-8 support are met. + * + * @param string $phase + * The hook_requirements() stage. + * + * @return array + * A requirements array with the result of the charset check. + */ +function _system_check_db_utf8mb4_requirements($phase) { + global $install_state; + // In the requirements check of the installer, skip the utf8mb4 check unless + // the database connection info has been preconfigured by hand with valid + // information before running the installer, as otherwise we cannot get a + // valid database connection object. + if (isset($install_state['settings_verified']) && !$install_state['settings_verified']) { + return array(); + } + + $connection = Database::getConnection(); + $t = get_t(); + $requirements['title'] = $t('Database 4 byte UTF-8 support'); + + $utf8mb4_configurable = $connection->utf8mb4IsConfigurable(); + $utf8mb4_active = $connection->utf8mb4IsActive(); + $utf8mb4_supported = $connection->utf8mb4IsSupported(); + $driver = $connection->driver(); + $documentation_url = 'https://www.drupal.org/node/2754539'; + + if ($utf8mb4_active) { + if ($utf8mb4_supported) { + if ($phase != 'install' && $utf8mb4_configurable && !variable_get('drupal_all_databases_are_utf8mb4', FALSE)) { + // Supported, active, and configurable, but not all database tables + // have been converted yet. + $requirements['value'] = $t('Enabled, but database tables need conversion'); + $requirements['description'] = $t('Please convert all database tables to utf8mb4 prior to enabling it in settings.php. See the documentation on adding 4 byte UTF-8 support for more information.', array('@url' => $documentation_url)); + $requirements['severity'] = REQUIREMENT_ERROR; + } + else { + // Supported, active. + $requirements['value'] = $t('Enabled'); + $requirements['description'] = $t('4 byte UTF-8 for @driver is enabled.', array('@driver' => $driver)); + $requirements['severity'] = REQUIREMENT_OK; + } + } + else { + // Not supported, active. + $requirements['value'] = $t('Not supported'); + $requirements['description'] = $t('4 byte UTF-8 for @driver is activated, but not supported on your system. Please turn this off in settings.php, or ensure that all database-related requirements are met. See the documentation on adding 4 byte UTF-8 support for more information.', array('@driver' => $driver, '@url' => $documentation_url)); + $requirements['severity'] = REQUIREMENT_ERROR; + } + } + else { + if ($utf8mb4_supported) { + // Supported, not active. + $requirements['value'] = $t('Not enabled'); + $requirements['description'] = $t('4 byte UTF-8 for @driver is not activated, but it is supported on your system. It is recommended that you enable this to allow 4-byte UTF-8 input such as emojis, Asian symbols and mathematical symbols to be stored correctly. See the documentation on adding 4 byte UTF-8 support for more information.', array('@driver' => $driver, '@url' => $documentation_url)); + $requirements['severity'] = REQUIREMENT_INFO; + } + else { + // Not supported, not active. + $requirements['value'] = $t('Disabled'); + $requirements['description'] = $t('4 byte UTF-8 for @driver is disabled. See the documentation on adding 4 byte UTF-8 support for more information.', array('@driver' => $driver, '@url' => $documentation_url)); + $requirements['severity'] = REQUIREMENT_INFO; + } + } + return $requirements; +} + /** * Implements hook_install(). */ @@ -504,6 +607,9 @@ function system_install() { module_list(TRUE); module_implements('', FALSE, TRUE); + // Ensure the schema versions are not based on a previous module list. + drupal_static_reset('drupal_get_schema_versions'); + // Load system theme data appropriately. system_rebuild_theme_data(); @@ -516,7 +622,7 @@ function system_install() { ->execute(); // Populate the cron key variable. - $cron_key = drupal_hash_base64(drupal_random_bytes(55)); + $cron_key = drupal_random_key(); variable_set('cron_key', $cron_key); } @@ -772,6 +878,7 @@ function system_schema() { 'type' => 'varchar', 'length' => 100, 'not null' => TRUE, + 'binary' => TRUE, ), 'type' => array( 'description' => 'The date format type, e.g. medium.', @@ -830,6 +937,7 @@ function system_schema() { 'filesize' => array( 'description' => 'The size of the file in bytes.', 'type' => 'int', + 'size' => 'big', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, @@ -1743,7 +1851,7 @@ function system_update_7000() { * Generate a cron key and save it in the variables table. */ function system_update_7001() { - variable_set('cron_key', drupal_hash_base64(drupal_random_bytes(55))); + variable_set('cron_key', drupal_random_key()); } /** @@ -2774,6 +2882,16 @@ function system_update_7061(&$sandbox) { ->from($query) ->execute(); + // Retrieve a list of duplicate files with the same filepath. Only the + // most-recently uploaded of these will be moved to the new {file_managed} + // table (and all references will be updated to point to it), since + // duplicate file URIs are not allowed in Drupal 7. + // Since the Drupal 6 to 7 upgrade path leaves the {files} table behind + // after it's done, custom or contributed modules which need to migrate + // file references of their own can use a similar query to determine the + // file IDs that duplicate filepaths were mapped to. + $sandbox['duplicate_filepath_fids_to_use'] = db_query("SELECT filepath, MAX(fid) FROM {files} GROUP BY filepath HAVING COUNT(*) > 1")->fetchAllKeyed(); + // Initialize batch update information. $sandbox['progress'] = 0; $sandbox['last_vid_processed'] = -1; @@ -2803,6 +2921,16 @@ function system_update_7061(&$sandbox) { continue; } + // If this file has a duplicate filepath, replace it with the + // most-recently uploaded file that has the same filepath. + if (isset($sandbox['duplicate_filepath_fids_to_use'][$file['filepath']]) && $record->fid != $sandbox['duplicate_filepath_fids_to_use'][$file['filepath']]) { + $file = db_select('files', 'f') + ->fields('f', array('fid', 'uid', 'filename', 'filepath', 'filemime', 'filesize', 'status', 'timestamp')) + ->condition('f.fid', $sandbox['duplicate_filepath_fids_to_use'][$file['filepath']]) + ->execute() + ->fetchAssoc(); + } + // Add in the file information from the upload table. $file['description'] = $record->description; $file['display'] = $record->list; @@ -2825,7 +2953,14 @@ function system_update_7061(&$sandbox) { // We will convert filepaths to URI using the default scheme // and stripping off the existing file directory path. $file['uri'] = $scheme . preg_replace('!^' . preg_quote($basename) . '!', '', $file['filepath']); - $file['uri'] = file_stream_wrapper_uri_normalize($file['uri']); + // Normalize the URI but don't call file_stream_wrapper_uri_normalize() + // directly, since that is a higher-level API function which invokes + // hooks while validating the scheme, and those will not work during + // the upgrade. Instead, use a simpler version that just assumes the + // scheme from above is already valid. + if (($file_uri_scheme = file_uri_scheme($file['uri'])) && ($file_uri_target = file_uri_target($file['uri']))) { + $file['uri'] = $file_uri_scheme . '://' . $file_uri_target; + } unset($file['filepath']); // Insert into the file_managed table. // Each fid should only be stored once in file_managed. @@ -3106,6 +3241,50 @@ function system_update_7078() { ), array('unique keys' => array('formats' => array('format', 'type')))); } +/** + * Convert the 'filesize' column in {file_managed} to a bigint. + */ +function system_update_7079() { + $spec = array( + 'description' => 'The size of the file in bytes.', + 'type' => 'int', + 'size' => 'big', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + ); + db_change_field('file_managed', 'filesize', 'filesize', $spec); +} + +/** + * Convert the 'format' column in {date_format_locale} to case sensitive varchar. + */ +function system_update_7080() { + $spec = array( + 'description' => 'The date format string.', + 'type' => 'varchar', + 'length' => 100, + 'not null' => TRUE, + 'binary' => TRUE, + ); + db_change_field('date_format_locale', 'format', 'format', $spec); +} + +/** + * Remove the Drupal 6 default install profile if it is still in the database. + */ +function system_update_7081() { + // Sites which used the default install profile in Drupal 6 and then updated + // to Drupal 7.44 or earlier will still have a record of this install profile + // in the database that needs to be deleted. + db_delete('system') + ->condition('filename', 'profiles/default/default.profile') + ->condition('type', 'module') + ->condition('status', 0) + ->condition('schema_version', 0) + ->execute(); +} + /** * @} End of "defgroup updates-7.x-extra". * The next series of updates should start at 8000. diff --git a/site/modules/system/system.js b/site/modules/system/system.js index 910fb5d..c0e76d3 100644 --- a/site/modules/system/system.js +++ b/site/modules/system/system.js @@ -105,7 +105,7 @@ Drupal.behaviors.dateTime = { // Attach keyup handler to custom format inputs. $('input' + source, context).once('date-time').keyup(function () { var input = $(this); - var url = fieldSettings.lookup + (/\?q=/.test(fieldSettings.lookup) ? '&format=' : '?format=') + encodeURIComponent(input.val()); + var url = fieldSettings.lookup + (/\?/.test(fieldSettings.lookup) ? '&format=' : '?format=') + encodeURIComponent(input.val()); $.getJSON(url, function (data) { $(suffix).empty().append(' ' + fieldSettings.text + ': ' + data + ''); }); diff --git a/site/modules/system/system.mail.inc b/site/modules/system/system.mail.inc index 4e75440..443e574 100644 --- a/site/modules/system/system.mail.inc +++ b/site/modules/system/system.mail.inc @@ -31,7 +31,7 @@ class DefaultMailSystem implements MailSystemInterface { /** * Send an e-mail message, using Drupal variables and default settings. * - * @see http://php.net/manual/en/function.mail.php + * @see http://php.net/manual/function.mail.php * @see drupal_mail() * * @param $message diff --git a/site/modules/system/system.module b/site/modules/system/system.module index 2bbcd7f..53844d8 100644 --- a/site/modules/system/system.module +++ b/site/modules/system/system.module @@ -242,6 +242,7 @@ function system_permission() { ), 'access site reports' => array( 'title' => t('View site reports'), + 'restrict access' => TRUE, ), 'block IP addresses' => array( 'title' => t('Block IP addresses'), @@ -358,7 +359,7 @@ function system_element_info() { '#size' => 60, '#maxlength' => 128, '#autocomplete_path' => FALSE, - '#process' => array('ajax_process_form'), + '#process' => array('form_process_autocomplete', 'ajax_process_form'), '#theme' => 'textfield', '#theme_wrappers' => array('form_element'), ); @@ -373,6 +374,9 @@ function system_element_info() { '#element_validate' => array('form_validate_machine_name'), '#theme' => 'textfield', '#theme_wrappers' => array('form_element'), + // Use the same value callback as for textfields; this ensures that we only + // get string values. + '#value_callback' => 'form_type_textfield_value', ); $types['password'] = array( '#input' => TRUE, @@ -381,6 +385,9 @@ function system_element_info() { '#process' => array('ajax_process_form'), '#theme' => 'password', '#theme_wrappers' => array('form_element'), + // Use the same value callback as for textfields; this ensures that we only + // get string values. + '#value_callback' => 'form_type_textfield_value', ); $types['password_confirm'] = array( '#input' => TRUE, @@ -2023,7 +2030,6 @@ function system_user_timezone(&$form, &$form_state) { '#description' => t('Select the desired local time and time zone. Dates and times throughout this site will be displayed using this time zone.'), ); if (!isset($account->timezone) && $account->uid == $user->uid && empty($form_state['input']['timezone'])) { - $form['timezone']['#description'] = t('Your time zone setting will be automatically detected if possible. Confirm the selection and click save.'); $form['timezone']['timezone']['#attributes'] = array('class' => array('timezone-detect')); drupal_add_js('misc/timezone.js'); } @@ -2398,9 +2404,17 @@ function _system_rebuild_module_data() { continue; } + // Add the info file modification time, so it becomes available for + // contributed modules to use for ordering module lists. + $module->info['mtime'] = filemtime(dirname($module->uri) . '/' . $module->name . '.info'); + // Merge in defaults and save. $modules[$key]->info = $module->info + $defaults; + // The "name" key is required, but to avoid a fatal error in the menu system + // we set a reasonable default if it is not provided. + $modules[$key]->info += array('name' => $key); + // Prefix stylesheets and scripts with module path. $path = dirname($module->uri); if (isset($module->info['stylesheets'])) { @@ -2507,6 +2521,16 @@ function _system_rebuild_theme_data() { // Find theme engines $engines = drupal_system_listing('/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.engine$/', 'themes/engines'); + // Allow modules to add further theme engines. + if ($module_engines = module_invoke_all('system_theme_engine_info')) { + foreach ($module_engines as $name => $theme_engine_path) { + $engines[$name] = (object) array( + 'uri' => $theme_engine_path, + 'filename' => basename($theme_engine_path), + 'name' => $name, + ); + } + } // Set defaults for theme info. $defaults = array( @@ -2536,6 +2560,14 @@ function _system_rebuild_theme_data() { $themes[$key]->filename = $theme->uri; $themes[$key]->info = drupal_parse_info_file($theme->uri) + $defaults; + // The "name" key is required, but to avoid a fatal error in the menu system + // we set a reasonable default if it is not provided. + $themes[$key]->info += array('name' => $key); + + // Add the info file modification time, so it becomes available for + // contributed modules to use for ordering theme lists. + $themes[$key]->info['mtime'] = filemtime($theme->uri); + // Invoke hook_system_info_alter() to give installed modules a chance to // modify the data in the .info files if necessary. $type = 'theme'; @@ -2683,10 +2715,17 @@ function system_find_base_themes($themes, $key, $used_keys = array()) { * @param $show * Possible values: REGIONS_ALL or REGIONS_VISIBLE. Visible excludes hidden * regions. - * @return - * An array of regions in the form $region['name'] = 'description'. + * @param bool $labels + * (optional) Boolean to specify whether the human readable machine names + * should be returned or not. Defaults to TRUE, but calling code can set + * this to FALSE for better performance, if it only needs machine names. + * + * @return array + * An associative array of regions in the form $region['name'] = 'description' + * if $labels is set to TRUE, or $region['name'] = 'name', if $labels is set + * to FALSE. */ -function system_region_list($theme_key, $show = REGIONS_ALL) { +function system_region_list($theme_key, $show = REGIONS_ALL, $labels = TRUE) { $themes = list_themes(); if (!isset($themes[$theme_key])) { return array(); @@ -2697,10 +2736,14 @@ function system_region_list($theme_key, $show = REGIONS_ALL) { // If requested, suppress hidden regions. See block_admin_display_form(). foreach ($info['regions'] as $name => $label) { if ($show == REGIONS_ALL || !isset($info['regions_hidden']) || !in_array($name, $info['regions_hidden'])) { - $list[$name] = t($label); + if ($labels) { + $list[$name] = t($label); + } + else { + $list[$name] = $name; + } } } - return $list; } @@ -2721,16 +2764,27 @@ function system_system_info_alter(&$info, $file, $type) { * * @param $theme * The name of a theme. + * * @return * A string that is the region name. */ function system_default_region($theme) { - $regions = array_keys(system_region_list($theme, REGIONS_VISIBLE)); - return isset($regions[0]) ? $regions[0] : ''; + $regions = system_region_list($theme, REGIONS_VISIBLE, FALSE); + return $regions ? reset($regions) : ''; } /** - * Add default buttons to a form and set its prefix. + * Sets up a form to save information automatically. + * + * This function adds a submit handler and a submit button to a form array. The + * submit function saves all the data in the form, using variable_set(), to + * variables named the same as the keys in the form array. Note that this means + * you should normally prefix your form array keys with your module name, so + * that they are unique when passed into variable_set(). + * + * If you need to manipulate the data in a custom manner, you can either put + * your own submission handler in the form array before calling this function, + * or just use your own submission handler instead of calling this function. * * @param $form * An associative array containing the structure of the form. @@ -2739,6 +2793,7 @@ function system_default_region($theme) { * The form structure. * * @see system_settings_form_submit() + * * @ingroup forms */ function system_settings_form($form) { @@ -2757,7 +2812,7 @@ function system_settings_form($form) { } /** - * Execute the system_settings_form. + * Form submission handler for system_settings_form(). * * If you want node type configure style handling of your checkboxes, * add an array_filter value to your form. @@ -2782,7 +2837,7 @@ function system_settings_form_submit($form, &$form_state) { function _system_sort_requirements($a, $b) { if (!isset($a['weight'])) { if (!isset($b['weight'])) { - return strcmp($a['title'], $b['title']); + return strcasecmp($a['title'], $b['title']); } return -$b['weight']; } @@ -2838,7 +2893,7 @@ function confirm_form($form, $question, $path, $description = NULL, $yes = NULL, // Prepare cancel link. if (isset($_GET['destination'])) { - $options = drupal_parse_url(urldecode($_GET['destination'])); + $options = drupal_parse_url($_GET['destination']); } elseif (is_array($path)) { $options = $path; @@ -3023,8 +3078,20 @@ function system_cron() { } } - $core = array('cache', 'cache_path', 'cache_filter', 'cache_page', 'cache_form', 'cache_menu'); - $cache_tables = array_merge(module_invoke_all('flush_caches'), $core); + // Delete expired cache entries. + // Avoid invoking hook_flush_cashes() on every cron run because some modules + // use this hook to perform expensive rebuilding operations (which are only + // designed to happen on full cache clears), rather than just returning a + // list of cache tables to be cleared. + $cache_object = cache_get('system_cache_tables'); + if (empty($cache_object)) { + $core = array('cache', 'cache_path', 'cache_filter', 'cache_page', 'cache_form', 'cache_menu'); + $cache_tables = array_merge(module_invoke_all('flush_caches'), $core); + cache_set('system_cache_tables', $cache_tables); + } + else { + $cache_tables = $cache_object->data; + } foreach ($cache_tables as $table) { cache_clear_all(NULL, $table); } @@ -3272,7 +3339,7 @@ function system_goto_action_form($context) { $form['url'] = array( '#type' => 'textfield', '#title' => t('URL'), - '#description' => t('The URL to which the user should be redirected. This can be an internal URL like node/1234 or an external URL like http://drupal.org.'), + '#description' => t('The URL to which the user should be redirected. This can be an internal path like node/1234 or an external URL like http://example.com.'), '#default_value' => isset($context['url']) ? $context['url'] : '', '#required' => TRUE, ); @@ -3309,7 +3376,8 @@ function system_goto_action($entity, $context) { */ function system_block_ip_action() { $ip = ip_address(); - db_insert('blocked_ips') + db_merge('blocked_ips') + ->key(array('ip' => $ip)) ->fields(array('ip' => $ip)) ->execute(); watchdog('action', 'Banned IP address %ip', array('%ip' => $ip)); @@ -3374,7 +3442,7 @@ function system_timezone($abbreviation = '', $offset = -1, $is_daylight_saving_t * @ingroup themeable */ function theme_system_powered_by() { - return '' . t('Powered by Drupal', array('@poweredby' => 'http://drupal.org')) . ''; + return '' . t('Powered by Drupal', array('@poweredby' => 'https://www.drupal.org')) . ''; } /** @@ -3411,30 +3479,32 @@ function system_image_toolkits() { /** * Attempts to get a file using drupal_http_request and to store it locally. * - * @param $url + * @param string $url * The URL of the file to grab. - * - * @param $destination + * @param string $destination * Stream wrapper URI specifying where the file should be placed. If a * directory path is provided, the file is saved into that directory under * its original name. If the path contains a filename as well, that one will * be used instead. * If this value is omitted, the site's default files scheme will be used, * usually "public://". - * - * @param $managed boolean + * @param bool $managed * If this is set to TRUE, the file API hooks will be invoked and the file is * registered in the database. - * - * @param $replace boolean + * @param int $replace * Replace behavior when the destination file already exists: * - FILE_EXISTS_REPLACE: Replace the existing file. * - FILE_EXISTS_RENAME: Append _{incrementing number} until the filename is * unique. * - FILE_EXISTS_ERROR: Do nothing and return FALSE. * - * @return - * On success the location the file was saved to, FALSE on failure. + * @return mixed + * One of these possibilities: + * - If it succeeds and $managed is FALSE, the location where the file was + * saved. + * - If it succeeds and $managed is TRUE, a \Drupal\file\FileInterface + * object which describes the file. + * - If it fails, FALSE. */ function system_retrieve_file($url, $destination = NULL, $managed = FALSE, $replace = FILE_EXISTS_RENAME) { $parsed_url = parse_url($url); @@ -3469,8 +3539,7 @@ function system_retrieve_file($url, $destination = NULL, $managed = FALSE, $repl function system_page_alter(&$page) { // Find all non-empty page regions, and add a theme wrapper function that // allows them to be consistently themed. - $regions = system_region_list($GLOBALS['theme']); - foreach (array_keys($regions) as $region) { + foreach (system_region_list($GLOBALS['theme'], REGIONS_ALL, FALSE) as $region) { if (!empty($page[$region])) { $page[$region]['#theme_wrappers'][] = 'region'; $page[$region]['#region'] = $region; diff --git a/site/modules/system/system.queue.inc b/site/modules/system/system.queue.inc index 901c4d6..c17084d 100644 --- a/site/modules/system/system.queue.inc +++ b/site/modules/system/system.queue.inc @@ -231,7 +231,7 @@ class SystemQueue implements DrupalReliableQueueInterface { // until an item is successfully claimed or we are reasonably sure there // are no unclaimed items left. while (TRUE) { - $item = db_query_range('SELECT data, item_id FROM {queue} q WHERE expire = 0 AND name = :name ORDER BY created ASC', 0, 1, array(':name' => $this->name))->fetchObject(); + $item = db_query_range('SELECT data, item_id FROM {queue} q WHERE expire = 0 AND name = :name ORDER BY created, item_id ASC', 0, 1, array(':name' => $this->name))->fetchObject(); if ($item) { // Try to update the item. Only one thread can succeed in UPDATEing the // same row. We cannot rely on REQUEST_TIME because items might be @@ -326,6 +326,7 @@ class MemoryQueue implements DrupalQueueInterface { $item->created = time(); $item->expire = 0; $this->queue[$item->item_id] = $item; + return TRUE; } public function numberOfItems() { diff --git a/site/modules/system/system.tar.inc b/site/modules/system/system.tar.inc index 32bf7f0..86e4e3d 100644 --- a/site/modules/system/system.tar.inc +++ b/site/modules/system/system.tar.inc @@ -30,81 +30,148 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * - * @category File_Formats - * @package Archive_Tar - * @author Vincent Blavet - * @copyright 1997-2008 The Authors - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: Id: Tar.php,v 1.43 2008/10/30 17:58:42 dufuz Exp - * @link http://pear.php.net/package/Archive_Tar + * @category File_Formats + * @package Archive_Tar + * @author Vincent Blavet + * @copyright 1997-2010 The Authors + * @license http://www.opensource.org/licenses/bsd-license.php New BSD License + * @version CVS: $Id$ + * @link http://pear.php.net/package/Archive_Tar + */ + + /** + * Note on Drupal 8 porting. + * This file origin is Tar.php, release 1.4.0 (stable) with some code + * from PEAR.php, release 1.9.5 (stable) both at http://pear.php.net. + * To simplify future porting from pear of this file, you should not + * do cosmetic or other non significant changes to this file. + * The following changes have been done: + * Added namespace Drupal\Core\Archiver. + * Removed require_once 'PEAR.php'. + * Added defintion of OS_WINDOWS taken from PEAR.php. + * Renamed class to ArchiveTar. + * Removed extends PEAR from class. + * Removed call parent:: __construct(). + * Changed PEAR::loadExtension($extname) to this->loadExtension($extname). + * Added function loadExtension() taken from PEAR.php. + * Changed all calls of unlink() to drupal_unlink(). + * Changed $this->error_object = &$this->raiseError($p_message) + * to throw new \Exception($p_message). + */ + + /** + * Note on Drupal 7 backporting from Drupal 8. + * File origin is core/lib/Drupal/Core/Archiver/ArchiveTar.php from Drupal 8. + * The following changes have been done: + * Removed namespace Drupal\Core\Archiver. + * Renamed class to Archive_Tar. + * Changed \Exception to Exception. */ -//require_once 'PEAR.php'; -// -// -define ('ARCHIVE_TAR_ATT_SEPARATOR', 90001); -define ('ARCHIVE_TAR_END_BLOCK', pack("a512", '')); + +// Drupal removal require_once 'PEAR.php'. + +// Drupal addition OS_WINDOWS as defined in PEAR.php. +if (substr(PHP_OS, 0, 3) == 'WIN') { + define('OS_WINDOWS', true); +} else { + define('OS_WINDOWS', false); +} + +define('ARCHIVE_TAR_ATT_SEPARATOR', 90001); +define('ARCHIVE_TAR_END_BLOCK', pack("a512", '')); + +if (!function_exists('gzopen') && function_exists('gzopen64')) { + function gzopen($filename, $mode, $use_include_path = 0) + { + return gzopen64($filename, $mode, $use_include_path); + } +} + +if (!function_exists('gztell') && function_exists('gztell64')) { + function gztell($zp) + { + return gztell64($zp); + } +} + +if (!function_exists('gzseek') && function_exists('gzseek64')) { + function gzseek($zp, $offset, $whence = SEEK_SET) + { + return gzseek64($zp, $offset, $whence); + } +} /** -* Creates a (compressed) Tar archive -* -* @author Vincent Blavet -* @version Revision: 1.43 -* @license http://www.opensource.org/licenses/bsd-license.php New BSD License -* @package Archive_Tar -*/ -class Archive_Tar // extends PEAR + * Creates a (compressed) Tar archive + * + * @package Archive_Tar + * @author Vincent Blavet + * @license http://www.opensource.org/licenses/bsd-license.php New BSD License + * @version $Revision$ + */ +// Drupal change class Archive_Tar extends PEAR. +class Archive_Tar { /** - * @var string Name of the Tar - */ - var $_tarname=''; + * @var string Name of the Tar + */ + public $_tarname = ''; /** - * @var boolean if true, the Tar file will be gzipped - */ - var $_compress=false; + * @var boolean if true, the Tar file will be gzipped + */ + public $_compress = false; /** - * @var string Type of compression : 'none', 'gz' or 'bz2' - */ - var $_compress_type='none'; + * @var string Type of compression : 'none', 'gz', 'bz2' or 'lzma2' + */ + public $_compress_type = 'none'; /** - * @var string Explode separator - */ - var $_separator=' '; + * @var string Explode separator + */ + public $_separator = ' '; /** - * @var file descriptor - */ - var $_file=0; + * @var file descriptor + */ + public $_file = 0; /** - * @var string Local Tar name of a remote Tar (http:// or ftp://) - */ - var $_temp_tarname=''; + * @var string Local Tar name of a remote Tar (http:// or ftp://) + */ + public $_temp_tarname = ''; - // {{{ constructor /** - * Archive_Tar Class constructor. This flavour of the constructor only - * declare a new Archive_Tar object, identifying it by the name of the - * tar file. - * If the compress argument is set the tar will be read or created as a - * gzip or bz2 compressed TAR file. - * - * @param string $p_tarname The name of the tar archive to create - * @param string $p_compress can be null, 'gz' or 'bz2'. This - * parameter indicates if gzip or bz2 compression - * is required. For compatibility reason the - * boolean value 'true' means 'gz'. - * @access public - */ -// function Archive_Tar($p_tarname, $p_compress = null) - function __construct($p_tarname, $p_compress = null) + * @var string regular expression for ignoring files or directories + */ + public $_ignore_regexp = ''; + + /** + * @var object PEAR_Error object + */ + public $error_object = null; + + /** + * Archive_Tar Class constructor. This flavour of the constructor only + * declare a new Archive_Tar object, identifying it by the name of the + * tar file. + * If the compress argument is set the tar will be read or created as a + * gzip or bz2 compressed TAR file. + * + * @param string $p_tarname The name of the tar archive to create + * @param string $p_compress can be null, 'gz', 'bz2' or 'lzma2'. This + * parameter indicates if gzip, bz2 or lzma2 compression + * is required. For compatibility reason the + * boolean value 'true' means 'gz'. + * + * @return bool + */ + public function __construct($p_tarname, $p_compress = null) { -// $this->PEAR(); + // Drupal removal parent::__construct(). + $this->_compress = false; $this->_compress_type = 'none'; if (($p_compress === null) || ($p_compress == '')) { @@ -116,10 +183,13 @@ class Archive_Tar // extends PEAR if ($data == "\37\213") { $this->_compress = true; $this->_compress_type = 'gz'; - // No sure it's enought for a magic code .... + // No sure it's enought for a magic code .... } elseif ($data == "BZ") { $this->_compress = true; $this->_compress_type = 'bz2'; + } elseif (file_get_contents($p_tarname, false, null, 1, 4) == '7zXZ') { + $this->_compress = true; + $this->_compress_type = 'lzma2'; } } } else { @@ -129,151 +199,177 @@ class Archive_Tar // extends PEAR $this->_compress = true; $this->_compress_type = 'gz'; } elseif ((substr($p_tarname, -3) == 'bz2') || - (substr($p_tarname, -2) == 'bz')) { + (substr($p_tarname, -2) == 'bz') + ) { $this->_compress = true; $this->_compress_type = 'bz2'; + } else { + if (substr($p_tarname, -2) == 'xz') { + $this->_compress = true; + $this->_compress_type = 'lzma2'; + } } } } else { if (($p_compress === true) || ($p_compress == 'gz')) { $this->_compress = true; $this->_compress_type = 'gz'; - } else if ($p_compress == 'bz2') { - $this->_compress = true; - $this->_compress_type = 'bz2'; } else { - die("Unsupported compression type '$p_compress'\n". - "Supported types are 'gz' and 'bz2'.\n"); - return false; + if ($p_compress == 'bz2') { + $this->_compress = true; + $this->_compress_type = 'bz2'; + } else { + if ($p_compress == 'lzma2') { + $this->_compress = true; + $this->_compress_type = 'lzma2'; + } else { + $this->_error( + "Unsupported compression type '$p_compress'\n" . + "Supported types are 'gz', 'bz2' and 'lzma2'.\n" + ); + return false; + } + } } } $this->_tarname = $p_tarname; - if ($this->_compress) { // assert zlib or bz2 extension support - if ($this->_compress_type == 'gz') + if ($this->_compress) { // assert zlib or bz2 or xz extension support + if ($this->_compress_type == 'gz') { $extname = 'zlib'; - else if ($this->_compress_type == 'bz2') - $extname = 'bz2'; + } else { + if ($this->_compress_type == 'bz2') { + $extname = 'bz2'; + } else { + if ($this->_compress_type == 'lzma2') { + $extname = 'xz'; + } + } + } if (!extension_loaded($extname)) { -// PEAR::loadExtension($extname); + // Drupal change PEAR::loadExtension($extname). $this->loadExtension($extname); } if (!extension_loaded($extname)) { - die("The extension '$extname' couldn't be found.\n". - "Please make sure your version of PHP was built ". - "with '$extname' support.\n"); + $this->_error( + "The extension '$extname' couldn't be found.\n" . + "Please make sure your version of PHP was built " . + "with '$extname' support.\n" + ); return false; } } } - // }}} + public function __destruct() + { + $this->_close(); + // ----- Look for a local copy to delete + if ($this->_temp_tarname != '') { + @drupal_unlink($this->_temp_tarname); + } + } + + // Drupal addition from PEAR.php. /** * OS independent PHP extension load. Remember to take care * on the correct extension name for case sensitive OSes. - * The function is the copy of PEAR::loadExtension(). * * @param string $ext The extension name * @return bool Success or not on the dl() call */ function loadExtension($ext) { - if (!extension_loaded($ext)) { - // if either returns true dl() will produce a FATAL error, stop that - if ((ini_get('enable_dl') != 1) || (ini_get('safe_mode') == 1)) { - return false; - } + if (extension_loaded($ext)) { + return true; + } - if (OS_WINDOWS) { - $suffix = '.dll'; - } elseif (PHP_OS == 'HP-UX') { - $suffix = '.sl'; - } elseif (PHP_OS == 'AIX') { - $suffix = '.a'; - } elseif (PHP_OS == 'OSX') { - $suffix = '.bundle'; - } else { - $suffix = '.so'; - } + // if either returns true dl() will produce a FATAL error, stop that + if ( + function_exists('dl') === false || + ini_get('enable_dl') != 1 || + ini_get('safe_mode') == 1 + ) { + return false; + } - return @dl('php_'.$ext.$suffix) || @dl($ext.$suffix); + if (OS_WINDOWS) { + $suffix = '.dll'; + } elseif (PHP_OS == 'HP-UX') { + $suffix = '.sl'; + } elseif (PHP_OS == 'AIX') { + $suffix = '.a'; + } elseif (PHP_OS == 'OSX') { + $suffix = '.bundle'; + } else { + $suffix = '.so'; } - return true; + return @dl('php_'.$ext.$suffix) || @dl($ext.$suffix); } - // {{{ destructor -// function _Archive_Tar() - function __destruct() - { - $this->_close(); - // ----- Look for a local copy to delete - if ($this->_temp_tarname != '') - @drupal_unlink($this->_temp_tarname); -// $this->_PEAR(); - } - // }}} - - // {{{ create() /** - * This method creates the archive file and add the files / directories - * that are listed in $p_filelist. - * If a file with the same name exist and is writable, it is replaced - * by the new tar. - * The method return false and a PEAR error text. - * The $p_filelist parameter can be an array of string, each string - * representing a filename or a directory name with their path if - * needed. It can also be a single string with names separated by a - * single blank. - * For each directory added in the archive, the files and - * sub-directories are also added. - * See also createModify() method for more details. - * - * @param array $p_filelist An array of filenames and directory names, or a - * single string with names separated by a single - * blank space. - * @return true on success, false on error. - * @see createModify() - * @access public - */ - function create($p_filelist) + * This method creates the archive file and add the files / directories + * that are listed in $p_filelist. + * If a file with the same name exist and is writable, it is replaced + * by the new tar. + * The method return false and a PEAR error text. + * The $p_filelist parameter can be an array of string, each string + * representing a filename or a directory name with their path if + * needed. It can also be a single string with names separated by a + * single blank. + * For each directory added in the archive, the files and + * sub-directories are also added. + * See also createModify() method for more details. + * + * @param array $p_filelist An array of filenames and directory names, or a + * single string with names separated by a single + * blank space. + * + * @return true on success, false on error. + * @see createModify() + */ + public function create($p_filelist) { return $this->createModify($p_filelist, '', ''); } - // }}} - // {{{ add() /** - * This method add the files / directories that are listed in $p_filelist in - * the archive. If the archive does not exist it is created. - * The method return false and a PEAR error text. - * The files and directories listed are only added at the end of the archive, - * even if a file with the same name is already archived. - * See also createModify() method for more details. - * - * @param array $p_filelist An array of filenames and directory names, or a - * single string with names separated by a single - * blank space. - * @return true on success, false on error. - * @see createModify() - * @access public - */ - function add($p_filelist) + * This method add the files / directories that are listed in $p_filelist in + * the archive. If the archive does not exist it is created. + * The method return false and a PEAR error text. + * The files and directories listed are only added at the end of the archive, + * even if a file with the same name is already archived. + * See also createModify() method for more details. + * + * @param array $p_filelist An array of filenames and directory names, or a + * single string with names separated by a single + * blank space. + * + * @return true on success, false on error. + * @see createModify() + * @access public + */ + public function add($p_filelist) { return $this->addModify($p_filelist, '', ''); } - // }}} - // {{{ extract() - function extract($p_path='') + /** + * @param string $p_path + * @param bool $p_preserve + * @return bool + */ + public function extract($p_path = '', $p_preserve = false) { - return $this->extractModify($p_path, ''); + return $this->extractModify($p_path, '', $p_preserve); } - // }}} - // {{{ listContent() - function listContent() + /** + * @return array|int + */ + public function listContent() { $v_list_detail = array(); @@ -287,57 +383,56 @@ class Archive_Tar // extends PEAR return $v_list_detail; } - // }}} - // {{{ createModify() /** - * This method creates the archive file and add the files / directories - * that are listed in $p_filelist. - * If the file already exists and is writable, it is replaced by the - * new tar. It is a create and not an add. If the file exists and is - * read-only or is a directory it is not replaced. The method return - * false and a PEAR error text. - * The $p_filelist parameter can be an array of string, each string - * representing a filename or a directory name with their path if - * needed. It can also be a single string with names separated by a - * single blank. - * The path indicated in $p_remove_dir will be removed from the - * memorized path of each file / directory listed when this path - * exists. By default nothing is removed (empty path '') - * The path indicated in $p_add_dir will be added at the beginning of - * the memorized path of each file / directory listed. However it can - * be set to empty ''. The adding of a path is done after the removing - * of path. - * The path add/remove ability enables the user to prepare an archive - * for extraction in a different path than the origin files are. - * See also addModify() method for file adding properties. - * - * @param array $p_filelist An array of filenames and directory names, - * or a single string with names separated by - * a single blank space. - * @param string $p_add_dir A string which contains a path to be added - * to the memorized path of each element in - * the list. - * @param string $p_remove_dir A string which contains a path to be - * removed from the memorized path of each - * element in the list, when relevant. - * @return boolean true on success, false on error. - * @access public - * @see addModify() - */ - function createModify($p_filelist, $p_add_dir, $p_remove_dir='') + * This method creates the archive file and add the files / directories + * that are listed in $p_filelist. + * If the file already exists and is writable, it is replaced by the + * new tar. It is a create and not an add. If the file exists and is + * read-only or is a directory it is not replaced. The method return + * false and a PEAR error text. + * The $p_filelist parameter can be an array of string, each string + * representing a filename or a directory name with their path if + * needed. It can also be a single string with names separated by a + * single blank. + * The path indicated in $p_remove_dir will be removed from the + * memorized path of each file / directory listed when this path + * exists. By default nothing is removed (empty path '') + * The path indicated in $p_add_dir will be added at the beginning of + * the memorized path of each file / directory listed. However it can + * be set to empty ''. The adding of a path is done after the removing + * of path. + * The path add/remove ability enables the user to prepare an archive + * for extraction in a different path than the origin files are. + * See also addModify() method for file adding properties. + * + * @param array $p_filelist An array of filenames and directory names, + * or a single string with names separated by + * a single blank space. + * @param string $p_add_dir A string which contains a path to be added + * to the memorized path of each element in + * the list. + * @param string $p_remove_dir A string which contains a path to be + * removed from the memorized path of each + * element in the list, when relevant. + * + * @return boolean true on success, false on error. + * @see addModify() + */ + public function createModify($p_filelist, $p_add_dir, $p_remove_dir = '') { $v_result = true; - if (!$this->_openWrite()) + if (!$this->_openWrite()) { return false; + } if ($p_filelist != '') { - if (is_array($p_filelist)) + if (is_array($p_filelist)) { $v_list = $p_filelist; - elseif (is_string($p_filelist)) + } elseif (is_string($p_filelist)) { $v_list = explode($this->_separator, $p_filelist); - else { + } else { $this->_cleanFile(); $this->_error('Invalid file list'); return false; @@ -349,67 +444,69 @@ class Archive_Tar // extends PEAR if ($v_result) { $this->_writeFooter(); $this->_close(); - } else + } else { $this->_cleanFile(); + } return $v_result; } - // }}} - // {{{ addModify() /** - * This method add the files / directories listed in $p_filelist at the - * end of the existing archive. If the archive does not yet exists it - * is created. - * The $p_filelist parameter can be an array of string, each string - * representing a filename or a directory name with their path if - * needed. It can also be a single string with names separated by a - * single blank. - * The path indicated in $p_remove_dir will be removed from the - * memorized path of each file / directory listed when this path - * exists. By default nothing is removed (empty path '') - * The path indicated in $p_add_dir will be added at the beginning of - * the memorized path of each file / directory listed. However it can - * be set to empty ''. The adding of a path is done after the removing - * of path. - * The path add/remove ability enables the user to prepare an archive - * for extraction in a different path than the origin files are. - * If a file/dir is already in the archive it will only be added at the - * end of the archive. There is no update of the existing archived - * file/dir. However while extracting the archive, the last file will - * replace the first one. This results in a none optimization of the - * archive size. - * If a file/dir does not exist the file/dir is ignored. However an - * error text is send to PEAR error. - * If a file/dir is not readable the file/dir is ignored. However an - * error text is send to PEAR error. - * - * @param array $p_filelist An array of filenames and directory - * names, or a single string with names - * separated by a single blank space. - * @param string $p_add_dir A string which contains a path to be - * added to the memorized path of each - * element in the list. - * @param string $p_remove_dir A string which contains a path to be - * removed from the memorized path of - * each element in the list, when - * relevant. - * @return true on success, false on error. - * @access public - */ - function addModify($p_filelist, $p_add_dir, $p_remove_dir='') + * This method add the files / directories listed in $p_filelist at the + * end of the existing archive. If the archive does not yet exists it + * is created. + * The $p_filelist parameter can be an array of string, each string + * representing a filename or a directory name with their path if + * needed. It can also be a single string with names separated by a + * single blank. + * The path indicated in $p_remove_dir will be removed from the + * memorized path of each file / directory listed when this path + * exists. By default nothing is removed (empty path '') + * The path indicated in $p_add_dir will be added at the beginning of + * the memorized path of each file / directory listed. However it can + * be set to empty ''. The adding of a path is done after the removing + * of path. + * The path add/remove ability enables the user to prepare an archive + * for extraction in a different path than the origin files are. + * If a file/dir is already in the archive it will only be added at the + * end of the archive. There is no update of the existing archived + * file/dir. However while extracting the archive, the last file will + * replace the first one. This results in a none optimization of the + * archive size. + * If a file/dir does not exist the file/dir is ignored. However an + * error text is send to PEAR error. + * If a file/dir is not readable the file/dir is ignored. However an + * error text is send to PEAR error. + * + * @param array $p_filelist An array of filenames and directory + * names, or a single string with names + * separated by a single blank space. + * @param string $p_add_dir A string which contains a path to be + * added to the memorized path of each + * element in the list. + * @param string $p_remove_dir A string which contains a path to be + * removed from the memorized path of + * each element in the list, when + * relevant. + * + * @return true on success, false on error. + */ + public function addModify($p_filelist, $p_add_dir, $p_remove_dir = '') { $v_result = true; - if (!$this->_isArchive()) - $v_result = $this->createModify($p_filelist, $p_add_dir, - $p_remove_dir); - else { - if (is_array($p_filelist)) + if (!$this->_isArchive()) { + $v_result = $this->createModify( + $p_filelist, + $p_add_dir, + $p_remove_dir + ); + } else { + if (is_array($p_filelist)) { $v_list = $p_filelist; - elseif (is_string($p_filelist)) + } elseif (is_string($p_filelist)) { $v_list = explode($this->_separator, $p_filelist); - else { + } else { $this->_error('Invalid file list'); return false; } @@ -419,24 +516,41 @@ class Archive_Tar // extends PEAR return $v_result; } - // }}} - // {{{ addString() /** - * This method add a single string as a file at the - * end of the existing archive. If the archive does not yet exists it - * is created. - * - * @param string $p_filename A string which contains the full - * filename path that will be associated - * with the string. - * @param string $p_string The content of the file added in - * the archive. - * @return true on success, false on error. - * @access public - */ - function addString($p_filename, $p_string) + * This method add a single string as a file at the + * end of the existing archive. If the archive does not yet exists it + * is created. + * + * @param string $p_filename A string which contains the full + * filename path that will be associated + * with the string. + * @param string $p_string The content of the file added in + * the archive. + * @param bool|int $p_datetime A custom date/time (unix timestamp) + * for the file (optional). + * @param array $p_params An array of optional params: + * stamp => the datetime (replaces + * datetime above if it exists) + * mode => the permissions on the + * file (600 by default) + * type => is this a link? See the + * tar specification for details. + * (default = regular file) + * uid => the user ID of the file + * (default = 0 = root) + * gid => the group ID of the file + * (default = 0 = root) + * + * @return true on success, false on error. + */ + public function addString($p_filename, $p_string, $p_datetime = false, $p_params = array()) { + $p_stamp = @$p_params["stamp"] ? $p_params["stamp"] : ($p_datetime ? $p_datetime : time()); + $p_mode = @$p_params["mode"] ? $p_params["mode"] : 0600; + $p_type = @$p_params["type"] ? $p_params["type"] : ""; + $p_uid = @$p_params["uid"] ? $p_params["uid"] : ""; + $p_gid = @$p_params["gid"] ? $p_params["gid"] : ""; $v_result = true; if (!$this->_isArchive()) { @@ -446,11 +560,12 @@ class Archive_Tar // extends PEAR $this->_close(); } - if (!$this->_openAppend()) + if (!$this->_openAppend()) { return false; + } // Need to check the get back to the temporary file ? .... - $v_result = $this->_addString($p_filename, $p_string); + $v_result = $this->_addString($p_filename, $p_string, $p_datetime, $p_params); $this->_writeFooter(); @@ -458,131 +573,138 @@ class Archive_Tar // extends PEAR return $v_result; } - // }}} - // {{{ extractModify() /** - * This method extract all the content of the archive in the directory - * indicated by $p_path. When relevant the memorized path of the - * files/dir can be modified by removing the $p_remove_path path at the - * beginning of the file/dir path. - * While extracting a file, if the directory path does not exists it is - * created. - * While extracting a file, if the file already exists it is replaced - * without looking for last modification date. - * While extracting a file, if the file already exists and is write - * protected, the extraction is aborted. - * While extracting a file, if a directory with the same name already - * exists, the extraction is aborted. - * While extracting a directory, if a file with the same name already - * exists, the extraction is aborted. - * While extracting a file/directory if the destination directory exist - * and is write protected, or does not exist but can not be created, - * the extraction is aborted. - * If after extraction an extracted file does not show the correct - * stored file size, the extraction is aborted. - * When the extraction is aborted, a PEAR error text is set and false - * is returned. However the result can be a partial extraction that may - * need to be manually cleaned. - * - * @param string $p_path The path of the directory where the - * files/dir need to by extracted. - * @param string $p_remove_path Part of the memorized path that can be - * removed if present at the beginning of - * the file/dir path. - * @return boolean true on success, false on error. - * @access public - * @see extractList() - */ - function extractModify($p_path, $p_remove_path) + * This method extract all the content of the archive in the directory + * indicated by $p_path. When relevant the memorized path of the + * files/dir can be modified by removing the $p_remove_path path at the + * beginning of the file/dir path. + * While extracting a file, if the directory path does not exists it is + * created. + * While extracting a file, if the file already exists it is replaced + * without looking for last modification date. + * While extracting a file, if the file already exists and is write + * protected, the extraction is aborted. + * While extracting a file, if a directory with the same name already + * exists, the extraction is aborted. + * While extracting a directory, if a file with the same name already + * exists, the extraction is aborted. + * While extracting a file/directory if the destination directory exist + * and is write protected, or does not exist but can not be created, + * the extraction is aborted. + * If after extraction an extracted file does not show the correct + * stored file size, the extraction is aborted. + * When the extraction is aborted, a PEAR error text is set and false + * is returned. However the result can be a partial extraction that may + * need to be manually cleaned. + * + * @param string $p_path The path of the directory where the + * files/dir need to by extracted. + * @param string $p_remove_path Part of the memorized path that can be + * removed if present at the beginning of + * the file/dir path. + * @param boolean $p_preserve Preserve user/group ownership of files + * + * @return boolean true on success, false on error. + * @see extractList() + */ + public function extractModify($p_path, $p_remove_path, $p_preserve = false) { $v_result = true; $v_list_detail = array(); if ($v_result = $this->_openRead()) { - $v_result = $this->_extractList($p_path, $v_list_detail, - "complete", 0, $p_remove_path); + $v_result = $this->_extractList( + $p_path, + $v_list_detail, + "complete", + 0, + $p_remove_path, + $p_preserve + ); $this->_close(); } return $v_result; } - // }}} - // {{{ extractInString() /** - * This method extract from the archive one file identified by $p_filename. - * The return value is a string with the file content, or NULL on error. - * @param string $p_filename The path of the file to extract in a string. - * @return a string with the file content or NULL. - * @access public - */ - function extractInString($p_filename) + * This method extract from the archive one file identified by $p_filename. + * The return value is a string with the file content, or NULL on error. + * + * @param string $p_filename The path of the file to extract in a string. + * + * @return a string with the file content or NULL. + */ + public function extractInString($p_filename) { if ($this->_openRead()) { $v_result = $this->_extractInString($p_filename); $this->_close(); } else { - $v_result = NULL; + $v_result = null; } return $v_result; } - // }}} - // {{{ extractList() /** - * This method extract from the archive only the files indicated in the - * $p_filelist. These files are extracted in the current directory or - * in the directory indicated by the optional $p_path parameter. - * If indicated the $p_remove_path can be used in the same way as it is - * used in extractModify() method. - * @param array $p_filelist An array of filenames and directory names, - * or a single string with names separated - * by a single blank space. - * @param string $p_path The path of the directory where the - * files/dir need to by extracted. - * @param string $p_remove_path Part of the memorized path that can be - * removed if present at the beginning of - * the file/dir path. - * @return true on success, false on error. - * @access public - * @see extractModify() - */ - function extractList($p_filelist, $p_path='', $p_remove_path='') + * This method extract from the archive only the files indicated in the + * $p_filelist. These files are extracted in the current directory or + * in the directory indicated by the optional $p_path parameter. + * If indicated the $p_remove_path can be used in the same way as it is + * used in extractModify() method. + * + * @param array $p_filelist An array of filenames and directory names, + * or a single string with names separated + * by a single blank space. + * @param string $p_path The path of the directory where the + * files/dir need to by extracted. + * @param string $p_remove_path Part of the memorized path that can be + * removed if present at the beginning of + * the file/dir path. + * @param boolean $p_preserve Preserve user/group ownership of files + * + * @return true on success, false on error. + * @see extractModify() + */ + public function extractList($p_filelist, $p_path = '', $p_remove_path = '', $p_preserve = false) { $v_result = true; $v_list_detail = array(); - if (is_array($p_filelist)) + if (is_array($p_filelist)) { $v_list = $p_filelist; - elseif (is_string($p_filelist)) + } elseif (is_string($p_filelist)) { $v_list = explode($this->_separator, $p_filelist); - else { + } else { $this->_error('Invalid string list'); return false; } if ($v_result = $this->_openRead()) { - $v_result = $this->_extractList($p_path, $v_list_detail, "partial", - $v_list, $p_remove_path); + $v_result = $this->_extractList( + $p_path, + $v_list_detail, + "partial", + $v_list, + $p_remove_path, + $p_preserve + ); $this->_close(); } return $v_result; } - // }}} - // {{{ setAttribute() /** - * This method set specific attributes of the archive. It uses a variable - * list of parameters, in the format attribute code + attribute values : - * $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ','); - * @param mixed $argv variable list of attributes and values - * @return true on success, false on error. - * @access public - */ - function setAttribute() + * This method set specific attributes of the archive. It uses a variable + * list of parameters, in the format attribute code + attribute values : + * $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ','); + * + * @return true on success, false on error. + */ + public function setAttribute() { $v_result = true; @@ -592,30 +714,32 @@ class Archive_Tar // extends PEAR } // ----- Get the arguments - $v_att_list = &func_get_args(); + $v_att_list = & func_get_args(); // ----- Read the attributes - $i=0; - while ($i<$v_size) { + $i = 0; + while ($i < $v_size) { // ----- Look for next option switch ($v_att_list[$i]) { // ----- Look for options that request a string value case ARCHIVE_TAR_ATT_SEPARATOR : // ----- Check the number of parameters - if (($i+1) >= $v_size) { - $this->_error('Invalid number of parameters for ' - .'attribute ARCHIVE_TAR_ATT_SEPARATOR'); + if (($i + 1) >= $v_size) { + $this->_error( + 'Invalid number of parameters for ' + . 'attribute ARCHIVE_TAR_ATT_SEPARATOR' + ); return false; } // ----- Get the value - $this->_separator = $v_att_list[$i+1]; + $this->_separator = $v_att_list[$i + 1]; $i++; - break; + break; default : - $this->_error('Unknow attribute code '.$v_att_list[$i].''); + $this->_error('Unknown attribute code ' . $v_att_list[$i] . ''); return false; } @@ -625,151 +749,248 @@ class Archive_Tar // extends PEAR return $v_result; } - // }}} - // {{{ _error() - function _error($p_message) + /** + * This method sets the regular expression for ignoring files and directories + * at import, for example: + * $arch->setIgnoreRegexp("#CVS|\.svn#"); + * + * @param string $regexp regular expression defining which files or directories to ignore + */ + public function setIgnoreRegexp($regexp) + { + $this->_ignore_regexp = $regexp; + } + + /** + * This method sets the regular expression for ignoring all files and directories + * matching the filenames in the array list at import, for example: + * $arch->setIgnoreList(array('CVS', '.svn', 'bin/tool')); + * + * @param array $list a list of file or directory names to ignore + * + * @access public + */ + public function setIgnoreList($list) + { + $regexp = str_replace(array('#', '.', '^', '$'), array('\#', '\.', '\^', '\$'), $list); + $regexp = '#/' . join('$|/', $list) . '#'; + $this->setIgnoreRegexp($regexp); + } + + /** + * @param string $p_message + */ + public function _error($p_message) { - // ----- To be completed -// $this->raiseError($p_message); + // Drupal change $this->error_object = $this->raiseError($p_message). throw new Exception($p_message); } - // }}} - // {{{ _warning() - function _warning($p_message) + /** + * @param string $p_message + */ + public function _warning($p_message) { - // ----- To be completed -// $this->raiseError($p_message); + // Drupal change $this->error_object = $this->raiseError($p_message). throw new Exception($p_message); } - // }}} - // {{{ _isArchive() - function _isArchive($p_filename=NULL) + /** + * @param string $p_filename + * @return bool + */ + public function _isArchive($p_filename = null) { - if ($p_filename == NULL) { + if ($p_filename == null) { $p_filename = $this->_tarname; } clearstatcache(); return @is_file($p_filename) && !@is_link($p_filename); } - // }}} - // {{{ _openWrite() - function _openWrite() + /** + * @return bool + */ + public function _openWrite() { - if ($this->_compress_type == 'gz') + if ($this->_compress_type == 'gz' && function_exists('gzopen')) { $this->_file = @gzopen($this->_tarname, "wb9"); - else if ($this->_compress_type == 'bz2') - $this->_file = @bzopen($this->_tarname, "w"); - else if ($this->_compress_type == 'none') - $this->_file = @fopen($this->_tarname, "wb"); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); + } else { + if ($this->_compress_type == 'bz2' && function_exists('bzopen')) { + $this->_file = @bzopen($this->_tarname, "w"); + } else { + if ($this->_compress_type == 'lzma2' && function_exists('xzopen')) { + $this->_file = @xzopen($this->_tarname, 'w'); + } else { + if ($this->_compress_type == 'none') { + $this->_file = @fopen($this->_tarname, "wb"); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + return false; + } + } + } + } if ($this->_file == 0) { - $this->_error('Unable to open in write mode \'' - .$this->_tarname.'\''); + $this->_error( + 'Unable to open in write mode \'' + . $this->_tarname . '\'' + ); return false; } return true; } - // }}} - // {{{ _openRead() - function _openRead() + /** + * @return bool + */ + public function _openRead() { if (strtolower(substr($this->_tarname, 0, 7)) == 'http://') { - // ----- Look if a local copy need to be done - if ($this->_temp_tarname == '') { - $this->_temp_tarname = uniqid('tar').'.tmp'; - if (!$v_file_from = @fopen($this->_tarname, 'rb')) { - $this->_error('Unable to open in read mode \'' - .$this->_tarname.'\''); - $this->_temp_tarname = ''; - return false; - } - if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) { - $this->_error('Unable to open in write mode \'' - .$this->_temp_tarname.'\''); - $this->_temp_tarname = ''; - return false; - } - while ($v_data = @fread($v_file_from, 1024)) - @fwrite($v_file_to, $v_data); - @fclose($v_file_from); - @fclose($v_file_to); - } + // ----- Look if a local copy need to be done + if ($this->_temp_tarname == '') { + $this->_temp_tarname = uniqid('tar') . '.tmp'; + if (!$v_file_from = @fopen($this->_tarname, 'rb')) { + $this->_error( + 'Unable to open in read mode \'' + . $this->_tarname . '\'' + ); + $this->_temp_tarname = ''; + return false; + } + if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) { + $this->_error( + 'Unable to open in write mode \'' + . $this->_temp_tarname . '\'' + ); + $this->_temp_tarname = ''; + return false; + } + while ($v_data = @fread($v_file_from, 1024)) { + @fwrite($v_file_to, $v_data); + } + @fclose($v_file_from); + @fclose($v_file_to); + } - // ----- File to open if the local copy - $v_filename = $this->_temp_tarname; + // ----- File to open if the local copy + $v_filename = $this->_temp_tarname; + } else { + // ----- File to open if the normal Tar file - } else - // ----- File to open if the normal Tar file - $v_filename = $this->_tarname; + $v_filename = $this->_tarname; + } - if ($this->_compress_type == 'gz') + if ($this->_compress_type == 'gz' && function_exists('gzopen')) { $this->_file = @gzopen($v_filename, "rb"); - else if ($this->_compress_type == 'bz2') - $this->_file = @bzopen($v_filename, "r"); - else if ($this->_compress_type == 'none') - $this->_file = @fopen($v_filename, "rb"); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); + } else { + if ($this->_compress_type == 'bz2' && function_exists('bzopen')) { + $this->_file = @bzopen($v_filename, "r"); + } else { + if ($this->_compress_type == 'lzma2' && function_exists('xzopen')) { + $this->_file = @xzopen($v_filename, "r"); + } else { + if ($this->_compress_type == 'none') { + $this->_file = @fopen($v_filename, "rb"); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + return false; + } + } + } + } if ($this->_file == 0) { - $this->_error('Unable to open in read mode \''.$v_filename.'\''); + $this->_error('Unable to open in read mode \'' . $v_filename . '\''); return false; } return true; } - // }}} - // {{{ _openReadWrite() - function _openReadWrite() + /** + * @return bool + */ + public function _openReadWrite() { - if ($this->_compress_type == 'gz') + if ($this->_compress_type == 'gz') { $this->_file = @gzopen($this->_tarname, "r+b"); - else if ($this->_compress_type == 'bz2') { - $this->_error('Unable to open bz2 in read/write mode \'' - .$this->_tarname.'\' (limitation of bz2 extension)'); - return false; - } else if ($this->_compress_type == 'none') - $this->_file = @fopen($this->_tarname, "r+b"); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); + } else { + if ($this->_compress_type == 'bz2') { + $this->_error( + 'Unable to open bz2 in read/write mode \'' + . $this->_tarname . '\' (limitation of bz2 extension)' + ); + return false; + } else { + if ($this->_compress_type == 'lzma2') { + $this->_error( + 'Unable to open lzma2 in read/write mode \'' + . $this->_tarname . '\' (limitation of lzma2 extension)' + ); + return false; + } else { + if ($this->_compress_type == 'none') { + $this->_file = @fopen($this->_tarname, "r+b"); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + return false; + } + } + } + } if ($this->_file == 0) { - $this->_error('Unable to open in read/write mode \'' - .$this->_tarname.'\''); + $this->_error( + 'Unable to open in read/write mode \'' + . $this->_tarname . '\'' + ); return false; } return true; } - // }}} - // {{{ _close() - function _close() + /** + * @return bool + */ + public function _close() { //if (isset($this->_file)) { if (is_resource($this->_file)) { - if ($this->_compress_type == 'gz') + if ($this->_compress_type == 'gz') { @gzclose($this->_file); - else if ($this->_compress_type == 'bz2') - @bzclose($this->_file); - else if ($this->_compress_type == 'none') - @fclose($this->_file); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); + } else { + if ($this->_compress_type == 'bz2') { + @bzclose($this->_file); + } else { + if ($this->_compress_type == 'lzma2') { + @xzclose($this->_file); + } else { + if ($this->_compress_type == 'none') { + @fclose($this->_file); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } $this->_file = 0; } @@ -783,10 +1004,11 @@ class Archive_Tar // extends PEAR return true; } - // }}} - // {{{ _cleanFile() - function _cleanFile() + /** + * @return bool + */ + public function _cleanFile() { $this->_close(); @@ -803,296 +1025,419 @@ class Archive_Tar // extends PEAR return true; } - // }}} - // {{{ _writeBlock() - function _writeBlock($p_binary_data, $p_len=null) + /** + * @param mixed $p_binary_data + * @param integer $p_len + * @return bool + */ + public function _writeBlock($p_binary_data, $p_len = null) { - if (is_resource($this->_file)) { - if ($p_len === null) { - if ($this->_compress_type == 'gz') - @gzputs($this->_file, $p_binary_data); - else if ($this->_compress_type == 'bz2') - @bzwrite($this->_file, $p_binary_data); - else if ($this->_compress_type == 'none') - @fputs($this->_file, $p_binary_data); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - } else { - if ($this->_compress_type == 'gz') - @gzputs($this->_file, $p_binary_data, $p_len); - else if ($this->_compress_type == 'bz2') - @bzwrite($this->_file, $p_binary_data, $p_len); - else if ($this->_compress_type == 'none') - @fputs($this->_file, $p_binary_data, $p_len); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - - } - } - return true; + if (is_resource($this->_file)) { + if ($p_len === null) { + if ($this->_compress_type == 'gz') { + @gzputs($this->_file, $p_binary_data); + } else { + if ($this->_compress_type == 'bz2') { + @bzwrite($this->_file, $p_binary_data); + } else { + if ($this->_compress_type == 'lzma2') { + @xzwrite($this->_file, $p_binary_data); + } else { + if ($this->_compress_type == 'none') { + @fputs($this->_file, $p_binary_data); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + } else { + if ($this->_compress_type == 'gz') { + @gzputs($this->_file, $p_binary_data, $p_len); + } else { + if ($this->_compress_type == 'bz2') { + @bzwrite($this->_file, $p_binary_data, $p_len); + } else { + if ($this->_compress_type == 'lzma2') { + @xzwrite($this->_file, $p_binary_data, $p_len); + } else { + if ($this->_compress_type == 'none') { + @fputs($this->_file, $p_binary_data, $p_len); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + } + } + return true; } - // }}} - // {{{ _readBlock() - function _readBlock() + /** + * @return null|string + */ + public function _readBlock() { - $v_block = null; - if (is_resource($this->_file)) { - if ($this->_compress_type == 'gz') - $v_block = @gzread($this->_file, 512); - else if ($this->_compress_type == 'bz2') - $v_block = @bzread($this->_file, 512); - else if ($this->_compress_type == 'none') - $v_block = @fread($this->_file, 512); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - } - return $v_block; + $v_block = null; + if (is_resource($this->_file)) { + if ($this->_compress_type == 'gz') { + $v_block = @gzread($this->_file, 512); + } else { + if ($this->_compress_type == 'bz2') { + $v_block = @bzread($this->_file, 512); + } else { + if ($this->_compress_type == 'lzma2') { + $v_block = @xzread($this->_file, 512); + } else { + if ($this->_compress_type == 'none') { + $v_block = @fread($this->_file, 512); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + } + return $v_block; } - // }}} - // {{{ _jumpBlock() - function _jumpBlock($p_len=null) - { - if (is_resource($this->_file)) { - if ($p_len === null) - $p_len = 1; - - if ($this->_compress_type == 'gz') { - @gzseek($this->_file, gztell($this->_file)+($p_len*512)); - } - else if ($this->_compress_type == 'bz2') { - // ----- Replace missing bztell() and bzseek() - for ($i=0; $i<$p_len; $i++) - $this->_readBlock(); - } else if ($this->_compress_type == 'none') - @fseek($this->_file, ftell($this->_file)+($p_len*512)); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - - } - return true; - } - // }}} + /** + * @param null $p_len + * @return bool + */ + public function _jumpBlock($p_len = null) + { + if (is_resource($this->_file)) { + if ($p_len === null) { + $p_len = 1; + } + + if ($this->_compress_type == 'gz') { + @gzseek($this->_file, gztell($this->_file) + ($p_len * 512)); + } else { + if ($this->_compress_type == 'bz2') { + // ----- Replace missing bztell() and bzseek() + for ($i = 0; $i < $p_len; $i++) { + $this->_readBlock(); + } + } else { + if ($this->_compress_type == 'lzma2') { + // ----- Replace missing xztell() and xzseek() + for ($i = 0; $i < $p_len; $i++) { + $this->_readBlock(); + } + } else { + if ($this->_compress_type == 'none') { + @fseek($this->_file, $p_len * 512, SEEK_CUR); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + } + return true; + } + + /** + * @return bool + */ + public function _writeFooter() + { + if (is_resource($this->_file)) { + // ----- Write the last 0 filled block for end of archive + $v_binary_data = pack('a1024', ''); + $this->_writeBlock($v_binary_data); + } + return true; + } + + /** + * @param array $p_list + * @param string $p_add_dir + * @param string $p_remove_dir + * @return bool + */ + public function _addList($p_list, $p_add_dir, $p_remove_dir) + { + $v_result = true; + $v_header = array(); + + // ----- Remove potential windows directory separator + $p_add_dir = $this->_translateWinPath($p_add_dir); + $p_remove_dir = $this->_translateWinPath($p_remove_dir, false); + + if (!$this->_file) { + $this->_error('Invalid file descriptor'); + return false; + } + + if (sizeof($p_list) == 0) { + return true; + } + + foreach ($p_list as $v_filename) { + if (!$v_result) { + break; + } + + // ----- Skip the current tar name + if ($v_filename == $this->_tarname) { + continue; + } + + if ($v_filename == '') { + continue; + } + + // ----- ignore files and directories matching the ignore regular expression + if ($this->_ignore_regexp && preg_match($this->_ignore_regexp, '/' . $v_filename)) { + $this->_warning("File '$v_filename' ignored"); + continue; + } + + if (!file_exists($v_filename) && !is_link($v_filename)) { + $this->_warning("File '$v_filename' does not exist"); + continue; + } + + // ----- Add the file or directory header + if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir)) { + return false; + } + + if (@is_dir($v_filename) && !@is_link($v_filename)) { + if (!($p_hdir = opendir($v_filename))) { + $this->_warning("Directory '$v_filename' can not be read"); + continue; + } + while (false !== ($p_hitem = readdir($p_hdir))) { + if (($p_hitem != '.') && ($p_hitem != '..')) { + if ($v_filename != ".") { + $p_temp_list[0] = $v_filename . '/' . $p_hitem; + } else { + $p_temp_list[0] = $p_hitem; + } + + $v_result = $this->_addList( + $p_temp_list, + $p_add_dir, + $p_remove_dir + ); + } + } + + unset($p_temp_list); + unset($p_hdir); + unset($p_hitem); + } + } - // {{{ _writeFooter() - function _writeFooter() - { - if (is_resource($this->_file)) { - // ----- Write the last 0 filled block for end of archive - $v_binary_data = pack('a1024', ''); - $this->_writeBlock($v_binary_data); - } - return true; + return $v_result; } - // }}} - // {{{ _addList() - function _addList($p_list, $p_add_dir, $p_remove_dir) + /** + * @param string $p_filename + * @param mixed $p_header + * @param string $p_add_dir + * @param string $p_remove_dir + * @param null $v_stored_filename + * @return bool + */ + public function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir, $v_stored_filename = null) { - $v_result=true; - $v_header = array(); + if (!$this->_file) { + $this->_error('Invalid file descriptor'); + return false; + } - // ----- Remove potential windows directory separator - $p_add_dir = $this->_translateWinPath($p_add_dir); - $p_remove_dir = $this->_translateWinPath($p_remove_dir, false); + if ($p_filename == '') { + $this->_error('Invalid file name'); + return false; + } - if (!$this->_file) { - $this->_error('Invalid file descriptor'); - return false; - } + if (is_null($v_stored_filename)) { + // ----- Calculate the stored filename + $p_filename = $this->_translateWinPath($p_filename, false); + $v_stored_filename = $p_filename; - if (sizeof($p_list) == 0) - return true; + if (strcmp($p_filename, $p_remove_dir) == 0) { + return true; + } - foreach ($p_list as $v_filename) { - if (!$v_result) { - break; - } + if ($p_remove_dir != '') { + if (substr($p_remove_dir, -1) != '/') { + $p_remove_dir .= '/'; + } - // ----- Skip the current tar name - if ($v_filename == $this->_tarname) - continue; + if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir) { + $v_stored_filename = substr($p_filename, strlen($p_remove_dir)); + } + } - if ($v_filename == '') - continue; + $v_stored_filename = $this->_translateWinPath($v_stored_filename); + if ($p_add_dir != '') { + if (substr($p_add_dir, -1) == '/') { + $v_stored_filename = $p_add_dir . $v_stored_filename; + } else { + $v_stored_filename = $p_add_dir . '/' . $v_stored_filename; + } + } - if (!file_exists($v_filename)) { - $this->_warning("File '$v_filename' does not exist"); - continue; + $v_stored_filename = $this->_pathReduction($v_stored_filename); } - // ----- Add the file or directory header - if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir)) - return false; + if ($this->_isArchive($p_filename)) { + if (($v_file = @fopen($p_filename, "rb")) == 0) { + $this->_warning( + "Unable to open file '" . $p_filename + . "' in binary read mode" + ); + return true; + } - if (@is_dir($v_filename) && !@is_link($v_filename)) { - if (!($p_hdir = opendir($v_filename))) { - $this->_warning("Directory '$v_filename' can not be read"); - continue; + if (!$this->_writeHeader($p_filename, $v_stored_filename)) { + return false; } - while (false !== ($p_hitem = readdir($p_hdir))) { - if (($p_hitem != '.') && ($p_hitem != '..')) { - if ($v_filename != ".") - $p_temp_list[0] = $v_filename.'/'.$p_hitem; - else - $p_temp_list[0] = $p_hitem; - - $v_result = $this->_addList($p_temp_list, - $p_add_dir, - $p_remove_dir); - } + + while (($v_buffer = fread($v_file, 512)) != '') { + $v_binary_data = pack("a512", "$v_buffer"); + $this->_writeBlock($v_binary_data); } - unset($p_temp_list); - unset($p_hdir); - unset($p_hitem); + fclose($v_file); + } else { + // ----- Only header for dir + if (!$this->_writeHeader($p_filename, $v_stored_filename)) { + return false; + } } - } - return $v_result; + return true; } - // }}} - // {{{ _addFile() - function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir) + /** + * @param string $p_filename + * @param string $p_string + * @param bool $p_datetime + * @param array $p_params + * @return bool + */ + public function _addString($p_filename, $p_string, $p_datetime = false, $p_params = array()) { - if (!$this->_file) { - $this->_error('Invalid file descriptor'); - return false; - } - - if ($p_filename == '') { - $this->_error('Invalid file name'); - return false; - } - - // ----- Calculate the stored filename - $p_filename = $this->_translateWinPath($p_filename, false);; - $v_stored_filename = $p_filename; - if (strcmp($p_filename, $p_remove_dir) == 0) { - return true; - } - if ($p_remove_dir != '') { - if (substr($p_remove_dir, -1) != '/') - $p_remove_dir .= '/'; - - if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir) - $v_stored_filename = substr($p_filename, strlen($p_remove_dir)); - } - $v_stored_filename = $this->_translateWinPath($v_stored_filename); - if ($p_add_dir != '') { - if (substr($p_add_dir, -1) == '/') - $v_stored_filename = $p_add_dir.$v_stored_filename; - else - $v_stored_filename = $p_add_dir.'/'.$v_stored_filename; - } - - $v_stored_filename = $this->_pathReduction($v_stored_filename); - - if ($this->_isArchive($p_filename)) { - if (($v_file = @fopen($p_filename, "rb")) == 0) { - $this->_warning("Unable to open file '".$p_filename - ."' in binary read mode"); - return true; - } - - if (!$this->_writeHeader($p_filename, $v_stored_filename)) - return false; - - while (($v_buffer = fread($v_file, 512)) != '') { - $v_binary_data = pack("a512", "$v_buffer"); - $this->_writeBlock($v_binary_data); - } - - fclose($v_file); - - } else { - // ----- Only header for dir - if (!$this->_writeHeader($p_filename, $v_stored_filename)) - return false; - } - - return true; - } - // }}} + $p_stamp = @$p_params["stamp"] ? $p_params["stamp"] : ($p_datetime ? $p_datetime : time()); + $p_mode = @$p_params["mode"] ? $p_params["mode"] : 0600; + $p_type = @$p_params["type"] ? $p_params["type"] : ""; + $p_uid = @$p_params["uid"] ? $p_params["uid"] : 0; + $p_gid = @$p_params["gid"] ? $p_params["gid"] : 0; + if (!$this->_file) { + $this->_error('Invalid file descriptor'); + return false; + } - // {{{ _addString() - function _addString($p_filename, $p_string) - { - if (!$this->_file) { - $this->_error('Invalid file descriptor'); - return false; - } - - if ($p_filename == '') { - $this->_error('Invalid file name'); - return false; - } - - // ----- Calculate the stored filename - $p_filename = $this->_translateWinPath($p_filename, false);; - - if (!$this->_writeHeaderBlock($p_filename, strlen($p_string), - time(), 384, "", 0, 0)) - return false; - - $i=0; - while (($v_buffer = substr($p_string, (($i++)*512), 512)) != '') { - $v_binary_data = pack("a512", $v_buffer); - $this->_writeBlock($v_binary_data); - } - - return true; + if ($p_filename == '') { + $this->_error('Invalid file name'); + return false; + } + + // ----- Calculate the stored filename + $p_filename = $this->_translateWinPath($p_filename, false); + + // ----- If datetime is not specified, set current time + if ($p_datetime === false) { + $p_datetime = time(); + } + + if (!$this->_writeHeaderBlock( + $p_filename, + strlen($p_string), + $p_stamp, + $p_mode, + $p_type, + $p_uid, + $p_gid + ) + ) { + return false; + } + + $i = 0; + while (($v_buffer = substr($p_string, (($i++) * 512), 512)) != '') { + $v_binary_data = pack("a512", $v_buffer); + $this->_writeBlock($v_binary_data); + } + + return true; } - // }}} - // {{{ _writeHeader() - function _writeHeader($p_filename, $p_stored_filename) + /** + * @param string $p_filename + * @param string $p_stored_filename + * @return bool + */ + public function _writeHeader($p_filename, $p_stored_filename) { - if ($p_stored_filename == '') + if ($p_stored_filename == '') { $p_stored_filename = $p_filename; + } $v_reduce_filename = $this->_pathReduction($p_stored_filename); if (strlen($v_reduce_filename) > 99) { - if (!$this->_writeLongHeader($v_reduce_filename)) - return false; + if (!$this->_writeLongHeader($v_reduce_filename)) { + return false; + } } $v_info = lstat($p_filename); - $v_uid = sprintf("%6s ", DecOct($v_info[4])); - $v_gid = sprintf("%6s ", DecOct($v_info[5])); - $v_perms = sprintf("%6s ", DecOct($v_info['mode'])); + $v_uid = sprintf("%07s", DecOct($v_info[4])); + $v_gid = sprintf("%07s", DecOct($v_info[5])); + $v_perms = sprintf("%07s", DecOct($v_info['mode'] & 000777)); - $v_mtime = sprintf("%11s", DecOct($v_info['mode'])); + $v_mtime = sprintf("%011s", DecOct($v_info['mtime'])); $v_linkname = ''; if (@is_link($p_filename)) { - $v_typeflag = '2'; - $v_linkname = readlink($p_filename); - $v_size = sprintf("%11s ", DecOct(0)); + $v_typeflag = '2'; + $v_linkname = readlink($p_filename); + $v_size = sprintf("%011s", DecOct(0)); } elseif (@is_dir($p_filename)) { - $v_typeflag = "5"; - $v_size = sprintf("%11s ", DecOct(0)); + $v_typeflag = "5"; + $v_size = sprintf("%011s", DecOct(0)); } else { - $v_typeflag = ''; - clearstatcache(); - $v_size = sprintf("%11s ", DecOct($v_info['size'])); + $v_typeflag = '0'; + clearstatcache(); + $v_size = sprintf("%011s", DecOct($v_info['size'])); } - $v_magic = ''; + $v_magic = 'ustar '; - $v_version = ''; + $v_version = ' '; - $v_uname = ''; + if (function_exists('posix_getpwuid')) { + $userinfo = posix_getpwuid($v_info[4]); + $groupinfo = posix_getgrgid($v_info[5]); - $v_gname = ''; + $v_uname = $userinfo['name']; + $v_gname = $groupinfo['name']; + } else { + $v_uname = ''; + $v_gname = ''; + } $v_devmajor = ''; @@ -1100,31 +1445,49 @@ class Archive_Tar // extends PEAR $v_prefix = ''; - $v_binary_data_first = pack("a100a8a8a8a12A12", - $v_reduce_filename, $v_perms, $v_uid, - $v_gid, $v_size, $v_mtime); - $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", - $v_typeflag, $v_linkname, $v_magic, - $v_version, $v_uname, $v_gname, - $v_devmajor, $v_devminor, $v_prefix, ''); + $v_binary_data_first = pack( + "a100a8a8a8a12a12", + $v_reduce_filename, + $v_perms, + $v_uid, + $v_gid, + $v_size, + $v_mtime + ); + $v_binary_data_last = pack( + "a1a100a6a2a32a32a8a8a155a12", + $v_typeflag, + $v_linkname, + $v_magic, + $v_version, + $v_uname, + $v_gname, + $v_devmajor, + $v_devminor, + $v_prefix, + '' + ); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum += ord(substr($v_binary_data_first,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data_first, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156, $j=0; $i<512; $i++, $j++) - $v_checksum += ord(substr($v_binary_data_last,$j,1)); + for ($i = 156, $j = 0; $i < 512; $i++, $j++) { + $v_checksum += ord(substr($v_binary_data_last, $j, 1)); + } // ----- Write the first 148 bytes of the header in the archive $this->_writeBlock($v_binary_data_first, 148); // ----- Write the calculated checksum - $v_checksum = sprintf("%6s ", DecOct($v_checksum)); + $v_checksum = sprintf("%06s ", DecOct($v_checksum)); $v_binary_data = pack("a8", $v_checksum); $this->_writeBlock($v_binary_data, 8); @@ -1133,40 +1496,62 @@ class Archive_Tar // extends PEAR return true; } - // }}} - // {{{ _writeHeaderBlock() - function _writeHeaderBlock($p_filename, $p_size, $p_mtime=0, $p_perms=0, - $p_type='', $p_uid=0, $p_gid=0) - { + /** + * @param string $p_filename + * @param int $p_size + * @param int $p_mtime + * @param int $p_perms + * @param string $p_type + * @param int $p_uid + * @param int $p_gid + * @return bool + */ + public function _writeHeaderBlock( + $p_filename, + $p_size, + $p_mtime = 0, + $p_perms = 0, + $p_type = '', + $p_uid = 0, + $p_gid = 0 + ) { $p_filename = $this->_pathReduction($p_filename); if (strlen($p_filename) > 99) { - if (!$this->_writeLongHeader($p_filename)) - return false; + if (!$this->_writeLongHeader($p_filename)) { + return false; + } } if ($p_type == "5") { - $v_size = sprintf("%11s ", DecOct(0)); + $v_size = sprintf("%011s", DecOct(0)); } else { - $v_size = sprintf("%11s ", DecOct($p_size)); + $v_size = sprintf("%011s", DecOct($p_size)); } - $v_uid = sprintf("%6s ", DecOct($p_uid)); - $v_gid = sprintf("%6s ", DecOct($p_gid)); - $v_perms = sprintf("%6s ", DecOct($p_perms)); + $v_uid = sprintf("%07s", DecOct($p_uid)); + $v_gid = sprintf("%07s", DecOct($p_gid)); + $v_perms = sprintf("%07s", DecOct($p_perms & 000777)); $v_mtime = sprintf("%11s", DecOct($p_mtime)); $v_linkname = ''; - $v_magic = ''; + $v_magic = 'ustar '; - $v_version = ''; + $v_version = ' '; - $v_uname = ''; + if (function_exists('posix_getpwuid')) { + $userinfo = posix_getpwuid($p_uid); + $groupinfo = posix_getgrgid($p_gid); - $v_gname = ''; + $v_uname = $userinfo['name']; + $v_gname = $groupinfo['name']; + } else { + $v_uname = ''; + $v_gname = ''; + } $v_devmajor = ''; @@ -1174,31 +1559,49 @@ class Archive_Tar // extends PEAR $v_prefix = ''; - $v_binary_data_first = pack("a100a8a8a8a12A12", - $p_filename, $v_perms, $v_uid, $v_gid, - $v_size, $v_mtime); - $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", - $p_type, $v_linkname, $v_magic, - $v_version, $v_uname, $v_gname, - $v_devmajor, $v_devminor, $v_prefix, ''); + $v_binary_data_first = pack( + "a100a8a8a8a12A12", + $p_filename, + $v_perms, + $v_uid, + $v_gid, + $v_size, + $v_mtime + ); + $v_binary_data_last = pack( + "a1a100a6a2a32a32a8a8a155a12", + $p_type, + $v_linkname, + $v_magic, + $v_version, + $v_uname, + $v_gname, + $v_devmajor, + $v_devminor, + $v_prefix, + '' + ); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum += ord(substr($v_binary_data_first,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data_first, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156, $j=0; $i<512; $i++, $j++) - $v_checksum += ord(substr($v_binary_data_last,$j,1)); + for ($i = 156, $j = 0; $i < 512; $i++, $j++) { + $v_checksum += ord(substr($v_binary_data_last, $j, 1)); + } // ----- Write the first 148 bytes of the header in the archive $this->_writeBlock($v_binary_data_first, 148); // ----- Write the calculated checksum - $v_checksum = sprintf("%6s ", DecOct($v_checksum)); + $v_checksum = sprintf("%06s ", DecOct($v_checksum)); $v_binary_data = pack("a8", $v_checksum); $this->_writeBlock($v_binary_data, 8); @@ -1207,10 +1610,12 @@ class Archive_Tar // extends PEAR return true; } - // }}} - // {{{ _writeLongHeader() - function _writeLongHeader($p_filename) + /** + * @param string $p_filename + * @return bool + */ + public function _writeLongHeader($p_filename) { $v_size = sprintf("%11s ", DecOct(strlen($p_filename))); @@ -1232,30 +1637,49 @@ class Archive_Tar // extends PEAR $v_prefix = ''; - $v_binary_data_first = pack("a100a8a8a8a12A12", - '././@LongLink', 0, 0, 0, $v_size, 0); - $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", - $v_typeflag, $v_linkname, $v_magic, - $v_version, $v_uname, $v_gname, - $v_devmajor, $v_devminor, $v_prefix, ''); + $v_binary_data_first = pack( + "a100a8a8a8a12a12", + '././@LongLink', + 0, + 0, + 0, + $v_size, + 0 + ); + $v_binary_data_last = pack( + "a1a100a6a2a32a32a8a8a155a12", + $v_typeflag, + $v_linkname, + $v_magic, + $v_version, + $v_uname, + $v_gname, + $v_devmajor, + $v_devminor, + $v_prefix, + '' + ); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum += ord(substr($v_binary_data_first,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data_first, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156, $j=0; $i<512; $i++, $j++) - $v_checksum += ord(substr($v_binary_data_last,$j,1)); + for ($i = 156, $j = 0; $i < 512; $i++, $j++) { + $v_checksum += ord(substr($v_binary_data_last, $j, 1)); + } // ----- Write the first 148 bytes of the header in the archive $this->_writeBlock($v_binary_data_first, 148); // ----- Write the calculated checksum - $v_checksum = sprintf("%6s ", DecOct($v_checksum)); + $v_checksum = sprintf("%06s ", DecOct($v_checksum)); $v_binary_data = pack("a8", $v_checksum); $this->_writeBlock($v_binary_data, 8); @@ -1263,27 +1687,30 @@ class Archive_Tar // extends PEAR $this->_writeBlock($v_binary_data_last, 356); // ----- Write the filename as content of the block - $i=0; - while (($v_buffer = substr($p_filename, (($i++)*512), 512)) != '') { + $i = 0; + while (($v_buffer = substr($p_filename, (($i++) * 512), 512)) != '') { $v_binary_data = pack("a512", "$v_buffer"); $this->_writeBlock($v_binary_data); } return true; } - // }}} - // {{{ _readHeader() - function _readHeader($v_binary_data, &$v_header) + /** + * @param mixed $v_binary_data + * @param mixed $v_header + * @return bool + */ + public function _readHeader($v_binary_data, &$v_header) { - if (strlen($v_binary_data)==0) { + if (strlen($v_binary_data) == 0) { $v_header['filename'] = ''; return true; } if (strlen($v_binary_data) != 512) { $v_header['filename'] = ''; - $this->_error('Invalid block size : '.strlen($v_binary_data)); + $this->_error('Invalid block size : ' . strlen($v_binary_data)); return false; } @@ -1293,19 +1720,32 @@ class Archive_Tar // extends PEAR // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum+=ord(substr($v_binary_data,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156; $i<512; $i++) - $v_checksum+=ord(substr($v_binary_data,$i,1)); + for ($i = 156; $i < 512; $i++) { + $v_checksum += ord(substr($v_binary_data, $i, 1)); + } - $v_data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/" - ."a8checksum/a1typeflag/a100link/a6magic/a2version/" - ."a32uname/a32gname/a8devmajor/a8devminor", - $v_binary_data); + if (version_compare(PHP_VERSION, "5.5.0-dev") < 0) { + $fmt = "a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/" . + "a8checksum/a1typeflag/a100link/a6magic/a2version/" . + "a32uname/a32gname/a8devmajor/a8devminor/a131prefix"; + } else { + $fmt = "Z100filename/Z8mode/Z8uid/Z8gid/Z12size/Z12mtime/" . + "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" . + "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix"; + } + $v_data = unpack($fmt, $v_binary_data); + + if (strlen($v_data["prefix"]) > 0) { + $v_data["filename"] = "$v_data[prefix]/$v_data[filename]"; + } // ----- Extract the checksum $v_header['checksum'] = OctDec(trim($v_data['checksum'])); @@ -1313,20 +1753,25 @@ class Archive_Tar // extends PEAR $v_header['filename'] = ''; // ----- Look for last block (empty block) - if (($v_checksum == 256) && ($v_header['checksum'] == 0)) + if (($v_checksum == 256) && ($v_header['checksum'] == 0)) { return true; + } - $this->_error('Invalid checksum for file "'.$v_data['filename'] - .'" : '.$v_checksum.' calculated, ' - .$v_header['checksum'].' expected'); + $this->_error( + 'Invalid checksum for file "' . $v_data['filename'] + . '" : ' . $v_checksum . ' calculated, ' + . $v_header['checksum'] . ' expected' + ); return false; } // ----- Extract the properties - $v_header['filename'] = trim($v_data['filename']); + $v_header['filename'] = rtrim($v_data['filename'], "\0"); if ($this->_maliciousFilename($v_header['filename'])) { - $this->_error('Malicious .tar detected, file "' . $v_header['filename'] . - '" will not install in desired directory tree'); + $this->_error( + 'Malicious .tar detected, file "' . $v_header['filename'] . + '" will not install in desired directory tree' + ); return false; } $v_header['mode'] = OctDec(trim($v_data['mode'])); @@ -1335,11 +1780,11 @@ class Archive_Tar // extends PEAR $v_header['size'] = OctDec(trim($v_data['size'])); $v_header['mtime'] = OctDec(trim($v_data['mtime'])); if (($v_header['typeflag'] = $v_data['typeflag']) == "5") { - $v_header['size'] = 0; + $v_header['size'] = 0; } $v_header['link'] = trim($v_data['link']); /* ----- All these fields are removed form the header because - they do not carry interesting info + they do not carry interesting info $v_header[magic] = trim($v_data[magic]); $v_header[version] = trim($v_data[version]); $v_header[uname] = trim($v_data[uname]); @@ -1350,17 +1795,15 @@ class Archive_Tar // extends PEAR return true; } - // }}} - // {{{ _maliciousFilename() /** * Detect and report a malicious file name * * @param string $file + * * @return bool - * @access private */ - function _maliciousFilename($file) + private function _maliciousFilename($file) { if (strpos($file, '/../') !== false) { return true; @@ -1370,386 +1813,507 @@ class Archive_Tar // extends PEAR } return false; } - // }}} - // {{{ _readLongHeader() - function _readLongHeader(&$v_header) + /** + * @param $v_header + * @return bool + */ + public function _readLongHeader(&$v_header) { - $v_filename = ''; - $n = floor($v_header['size']/512); - for ($i=0; $i<$n; $i++) { - $v_content = $this->_readBlock(); - $v_filename .= $v_content; - } - if (($v_header['size'] % 512) != 0) { - $v_content = $this->_readBlock(); - $v_filename .= $v_content; - } - - // ----- Read the next header - $v_binary_data = $this->_readBlock(); - - if (!$this->_readHeader($v_binary_data, $v_header)) - return false; + $v_filename = ''; + $v_filesize = $v_header['size']; + $n = floor($v_header['size'] / 512); + for ($i = 0; $i < $n; $i++) { + $v_content = $this->_readBlock(); + $v_filename .= $v_content; + } + if (($v_header['size'] % 512) != 0) { + $v_content = $this->_readBlock(); + $v_filename .= $v_content; + } - $v_filename = trim($v_filename); - $v_header['filename'] = $v_filename; + // ----- Read the next header + $v_binary_data = $this->_readBlock(); + + if (!$this->_readHeader($v_binary_data, $v_header)) { + return false; + } + + $v_filename = rtrim(substr($v_filename, 0, $v_filesize), "\0"); + $v_header['filename'] = $v_filename; if ($this->_maliciousFilename($v_filename)) { - $this->_error('Malicious .tar detected, file "' . $v_filename . - '" will not install in desired directory tree'); + $this->_error( + 'Malicious .tar detected, file "' . $v_filename . + '" will not install in desired directory tree' + ); return false; - } + } - return true; + return true; } - // }}} - // {{{ _extractInString() /** - * This method extract from the archive one file identified by $p_filename. - * The return value is a string with the file content, or NULL on error. - * @param string $p_filename The path of the file to extract in a string. - * @return a string with the file content or NULL. - * @access private - */ - function _extractInString($p_filename) + * This method extract from the archive one file identified by $p_filename. + * The return value is a string with the file content, or null on error. + * + * @param string $p_filename The path of the file to extract in a string. + * + * @return a string with the file content or null. + */ + private function _extractInString($p_filename) { $v_result_str = ""; - While (strlen($v_binary_data = $this->_readBlock()) != 0) - { - if (!$this->_readHeader($v_binary_data, $v_header)) - return NULL; - - if ($v_header['filename'] == '') - continue; - - // ----- Look for long filename - if ($v_header['typeflag'] == 'L') { - if (!$this->_readLongHeader($v_header)) - return NULL; - } - - if ($v_header['filename'] == $p_filename) { - if ($v_header['typeflag'] == "5") { - $this->_error('Unable to extract in string a directory ' - .'entry {'.$v_header['filename'].'}'); - return NULL; - } else { - $n = floor($v_header['size']/512); - for ($i=0; $i<$n; $i++) { - $v_result_str .= $this->_readBlock(); - } - if (($v_header['size'] % 512) != 0) { - $v_content = $this->_readBlock(); - $v_result_str .= substr($v_content, 0, - ($v_header['size'] % 512)); - } - return $v_result_str; - } - } else { - $this->_jumpBlock(ceil(($v_header['size']/512))); - } - } - - return NULL; - } - // }}} + while (strlen($v_binary_data = $this->_readBlock()) != 0) { + if (!$this->_readHeader($v_binary_data, $v_header)) { + return null; + } - // {{{ _extractList() - function _extractList($p_path, &$p_list_detail, $p_mode, - $p_file_list, $p_remove_path) - { - $v_result=true; - $v_nb = 0; - $v_extract_all = true; - $v_listing = false; - - $p_path = $this->_translateWinPath($p_path, false); - if ($p_path == '' || (substr($p_path, 0, 1) != '/' - && substr($p_path, 0, 3) != "../" && !strpos($p_path, ':'))) { - $p_path = "./".$p_path; - } - $p_remove_path = $this->_translateWinPath($p_remove_path); - - // ----- Look for path to remove format (should end by /) - if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/')) - $p_remove_path .= '/'; - $p_remove_path_size = strlen($p_remove_path); - - switch ($p_mode) { - case "complete" : - $v_extract_all = TRUE; - $v_listing = FALSE; - break; - case "partial" : - $v_extract_all = FALSE; - $v_listing = FALSE; - break; - case "list" : - $v_extract_all = FALSE; - $v_listing = TRUE; - break; - default : - $this->_error('Invalid extract mode ('.$p_mode.')'); - return false; + if ($v_header['filename'] == '') { + continue; + } + + // ----- Look for long filename + if ($v_header['typeflag'] == 'L') { + if (!$this->_readLongHeader($v_header)) { + return null; + } + } + + if ($v_header['filename'] == $p_filename) { + if ($v_header['typeflag'] == "5") { + $this->_error( + 'Unable to extract in string a directory ' + . 'entry {' . $v_header['filename'] . '}' + ); + return null; + } else { + $n = floor($v_header['size'] / 512); + for ($i = 0; $i < $n; $i++) { + $v_result_str .= $this->_readBlock(); + } + if (($v_header['size'] % 512) != 0) { + $v_content = $this->_readBlock(); + $v_result_str .= substr( + $v_content, + 0, + ($v_header['size'] % 512) + ); + } + return $v_result_str; + } + } else { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + } + } + + return null; } - clearstatcache(); + /** + * @param string $p_path + * @param string $p_list_detail + * @param string $p_mode + * @param string $p_file_list + * @param string $p_remove_path + * @param bool $p_preserve + * @return bool + */ + public function _extractList( + $p_path, + &$p_list_detail, + $p_mode, + $p_file_list, + $p_remove_path, + $p_preserve = false + ) { + $v_result = true; + $v_nb = 0; + $v_extract_all = true; + $v_listing = false; + + $p_path = $this->_translateWinPath($p_path, false); + if ($p_path == '' || (substr($p_path, 0, 1) != '/' + && substr($p_path, 0, 3) != "../" && !strpos($p_path, ':')) + ) { + $p_path = "./" . $p_path; + } + $p_remove_path = $this->_translateWinPath($p_remove_path); + + // ----- Look for path to remove format (should end by /) + if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/')) { + $p_remove_path .= '/'; + } + $p_remove_path_size = strlen($p_remove_path); - while (strlen($v_binary_data = $this->_readBlock()) != 0) - { - $v_extract_file = FALSE; - $v_extraction_stopped = 0; + switch ($p_mode) { + case "complete" : + $v_extract_all = true; + $v_listing = false; + break; + case "partial" : + $v_extract_all = false; + $v_listing = false; + break; + case "list" : + $v_extract_all = false; + $v_listing = true; + break; + default : + $this->_error('Invalid extract mode (' . $p_mode . ')'); + return false; + } - if (!$this->_readHeader($v_binary_data, $v_header)) - return false; + clearstatcache(); - if ($v_header['filename'] == '') { - continue; - } - - // ----- Look for long filename - if ($v_header['typeflag'] == 'L') { - if (!$this->_readLongHeader($v_header)) - return false; - } - - if ((!$v_extract_all) && (is_array($p_file_list))) { - // ----- By default no unzip if the file is not found - $v_extract_file = false; - - for ($i=0; $i strlen($p_file_list[$i])) - && (substr($v_header['filename'], 0, strlen($p_file_list[$i])) - == $p_file_list[$i])) { - $v_extract_file = TRUE; - break; + while (strlen($v_binary_data = $this->_readBlock()) != 0) { + $v_extract_file = false; + $v_extraction_stopped = 0; + + if (!$this->_readHeader($v_binary_data, $v_header)) { + return false; + } + + if ($v_header['filename'] == '') { + continue; } - } - - // ----- It is a file, so compare the file names - elseif ($p_file_list[$i] == $v_header['filename']) { - $v_extract_file = TRUE; - break; - } - } - } else { - $v_extract_file = TRUE; - } - - // ----- Look if this file need to be extracted - if (($v_extract_file) && (!$v_listing)) - { - if (($p_remove_path != '') - && (substr($v_header['filename'], 0, $p_remove_path_size) - == $p_remove_path)) - $v_header['filename'] = substr($v_header['filename'], - $p_remove_path_size); - if (($p_path != './') && ($p_path != '/')) { - while (substr($p_path, -1) == '/') - $p_path = substr($p_path, 0, strlen($p_path)-1); - - if (substr($v_header['filename'], 0, 1) == '/') - $v_header['filename'] = $p_path.$v_header['filename']; - else - $v_header['filename'] = $p_path.'/'.$v_header['filename']; - } - if (file_exists($v_header['filename'])) { - if ( (@is_dir($v_header['filename'])) - && ($v_header['typeflag'] == '')) { - $this->_error('File '.$v_header['filename'] - .' already exists as a directory'); - return false; - } - if ( ($this->_isArchive($v_header['filename'])) - && ($v_header['typeflag'] == "5")) { - $this->_error('Directory '.$v_header['filename'] - .' already exists as a file'); - return false; - } - if (!is_writeable($v_header['filename'])) { - $this->_error('File '.$v_header['filename'] - .' already exists and is write protected'); - return false; - } - if (filemtime($v_header['filename']) > $v_header['mtime']) { - // To be completed : An error or silent no replace ? - } - } - - // ----- Check the directory availability and create it if necessary - elseif (($v_result - = $this->_dirCheck(($v_header['typeflag'] == "5" - ?$v_header['filename'] - :dirname($v_header['filename'])))) != 1) { - $this->_error('Unable to create path for '.$v_header['filename']); - return false; - } - if ($v_extract_file) { - if ($v_header['typeflag'] == "5") { - if (!@file_exists($v_header['filename'])) { - // Drupal integration. - // Changed the code to use drupal_mkdir() instead of mkdir(). - if (!@drupal_mkdir($v_header['filename'], 0777)) { - $this->_error('Unable to create directory {' - .$v_header['filename'].'}'); + // ----- Look for long filename + if ($v_header['typeflag'] == 'L') { + if (!$this->_readLongHeader($v_header)) { return false; } } - } elseif ($v_header['typeflag'] == "2") { - if (@file_exists($v_header['filename'])) { - @drupal_unlink($v_header['filename']); - } - if (!@symlink($v_header['link'], $v_header['filename'])) { - $this->_error('Unable to extract symbolic link {' - .$v_header['filename'].'}'); - return false; - } - } else { - if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) { - $this->_error('Error while opening {'.$v_header['filename'] - .'} in write binary mode'); - return false; - } else { - $n = floor($v_header['size']/512); - for ($i=0; $i<$n; $i++) { - $v_content = $this->_readBlock(); - fwrite($v_dest_file, $v_content, 512); - } - if (($v_header['size'] % 512) != 0) { - $v_content = $this->_readBlock(); - fwrite($v_dest_file, $v_content, ($v_header['size'] % 512)); - } - @fclose($v_dest_file); + // ignore extended / pax headers + if ($v_header['typeflag'] == 'x' || $v_header['typeflag'] == 'g') { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + continue; + } - // ----- Change the file mode, mtime - @touch($v_header['filename'], $v_header['mtime']); - if ($v_header['mode'] & 0111) { - // make file executable, obey umask - $mode = fileperms($v_header['filename']) | (~umask() & 0111); - @chmod($v_header['filename'], $mode); + if ((!$v_extract_all) && (is_array($p_file_list))) { + // ----- By default no unzip if the file is not found + $v_extract_file = false; + + for ($i = 0; $i < sizeof($p_file_list); $i++) { + // ----- Look if it is a directory + if (substr($p_file_list[$i], -1) == '/') { + // ----- Look if the directory is in the filename path + if ((strlen($v_header['filename']) > strlen($p_file_list[$i])) + && (substr($v_header['filename'], 0, strlen($p_file_list[$i])) + == $p_file_list[$i]) + ) { + $v_extract_file = true; + break; + } + } // ----- It is a file, so compare the file names + elseif ($p_file_list[$i] == $v_header['filename']) { + $v_extract_file = true; + break; + } + } + } else { + $v_extract_file = true; } - } - - // ----- Check the file size - clearstatcache(); - if (filesize($v_header['filename']) != $v_header['size']) { - $this->_error('Extracted file '.$v_header['filename'] - .' does not have the correct file size \'' - .filesize($v_header['filename']) - .'\' ('.$v_header['size'] - .' expected). Archive may be corrupted.'); - return false; - } - } - } else { - $this->_jumpBlock(ceil(($v_header['size']/512))); - } - } else { - $this->_jumpBlock(ceil(($v_header['size']/512))); - } - /* TBC : Seems to be unused ... - if ($this->_compress) - $v_end_of_file = @gzeof($this->_file); - else - $v_end_of_file = @feof($this->_file); - */ + // ----- Look if this file need to be extracted + if (($v_extract_file) && (!$v_listing)) { + if (($p_remove_path != '') + && (substr($v_header['filename'] . '/', 0, $p_remove_path_size) + == $p_remove_path) + ) { + $v_header['filename'] = substr( + $v_header['filename'], + $p_remove_path_size + ); + if ($v_header['filename'] == '') { + continue; + } + } + if (($p_path != './') && ($p_path != '/')) { + while (substr($p_path, -1) == '/') { + $p_path = substr($p_path, 0, strlen($p_path) - 1); + } - if ($v_listing || $v_extract_file || $v_extraction_stopped) { - // ----- Log extracted files - if (($v_file_dir = dirname($v_header['filename'])) - == $v_header['filename']) - $v_file_dir = ''; - if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == '')) - $v_file_dir = '/'; + if (substr($v_header['filename'], 0, 1) == '/') { + $v_header['filename'] = $p_path . $v_header['filename']; + } else { + $v_header['filename'] = $p_path . '/' . $v_header['filename']; + } + } + if (file_exists($v_header['filename'])) { + if ((@is_dir($v_header['filename'])) + && ($v_header['typeflag'] == '') + ) { + $this->_error( + 'File ' . $v_header['filename'] + . ' already exists as a directory' + ); + return false; + } + if (($this->_isArchive($v_header['filename'])) + && ($v_header['typeflag'] == "5") + ) { + $this->_error( + 'Directory ' . $v_header['filename'] + . ' already exists as a file' + ); + return false; + } + if (!is_writeable($v_header['filename'])) { + $this->_error( + 'File ' . $v_header['filename'] + . ' already exists and is write protected' + ); + return false; + } + if (filemtime($v_header['filename']) > $v_header['mtime']) { + // To be completed : An error or silent no replace ? + } + } // ----- Check the directory availability and create it if necessary + elseif (($v_result + = $this->_dirCheck( + ($v_header['typeflag'] == "5" + ? $v_header['filename'] + : dirname($v_header['filename'])) + )) != 1 + ) { + $this->_error('Unable to create path for ' . $v_header['filename']); + return false; + } - $p_list_detail[$v_nb++] = $v_header; - if (is_array($p_file_list) && (count($p_list_detail) == count($p_file_list))) { - return true; + if ($v_extract_file) { + if ($v_header['typeflag'] == "5") { + if (!@file_exists($v_header['filename'])) { + if (!@mkdir($v_header['filename'], 0777)) { + $this->_error( + 'Unable to create directory {' + . $v_header['filename'] . '}' + ); + return false; + } + } + } elseif ($v_header['typeflag'] == "2") { + if (@file_exists($v_header['filename'])) { + @drupal_unlink($v_header['filename']); + } + if (!@symlink($v_header['link'], $v_header['filename'])) { + $this->_error( + 'Unable to extract symbolic link {' + . $v_header['filename'] . '}' + ); + return false; + } + } else { + if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) { + $this->_error( + 'Error while opening {' . $v_header['filename'] + . '} in write binary mode' + ); + return false; + } else { + $n = floor($v_header['size'] / 512); + for ($i = 0; $i < $n; $i++) { + $v_content = $this->_readBlock(); + fwrite($v_dest_file, $v_content, 512); + } + if (($v_header['size'] % 512) != 0) { + $v_content = $this->_readBlock(); + fwrite($v_dest_file, $v_content, ($v_header['size'] % 512)); + } + + @fclose($v_dest_file); + + if ($p_preserve) { + @chown($v_header['filename'], $v_header['uid']); + @chgrp($v_header['filename'], $v_header['gid']); + } + + // ----- Change the file mode, mtime + @touch($v_header['filename'], $v_header['mtime']); + if ($v_header['mode'] & 0111) { + // make file executable, obey umask + $mode = fileperms($v_header['filename']) | (~umask() & 0111); + @chmod($v_header['filename'], $mode); + } + } + + // ----- Check the file size + clearstatcache(); + if (!is_file($v_header['filename'])) { + $this->_error( + 'Extracted file ' . $v_header['filename'] + . 'does not exist. Archive may be corrupted.' + ); + return false; + } + + $filesize = filesize($v_header['filename']); + if ($filesize != $v_header['size']) { + $this->_error( + 'Extracted file ' . $v_header['filename'] + . ' does not have the correct file size \'' + . $filesize + . '\' (' . $v_header['size'] + . ' expected). Archive may be corrupted.' + ); + return false; + } + } + } else { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + } + } else { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + } + + /* TBC : Seems to be unused ... + if ($this->_compress) + $v_end_of_file = @gzeof($this->_file); + else + $v_end_of_file = @feof($this->_file); + */ + + if ($v_listing || $v_extract_file || $v_extraction_stopped) { + // ----- Log extracted files + if (($v_file_dir = dirname($v_header['filename'])) + == $v_header['filename'] + ) { + $v_file_dir = ''; + } + if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == '')) { + $v_file_dir = '/'; + } + + $p_list_detail[$v_nb++] = $v_header; + if (is_array($p_file_list) && (count($p_list_detail) == count($p_file_list))) { + return true; + } + } } - } - } return true; } - // }}} - // {{{ _openAppend() - function _openAppend() + /** + * @return bool + */ + public function _openAppend() { - if (filesize($this->_tarname) == 0) - return $this->_openWrite(); + if (filesize($this->_tarname) == 0) { + return $this->_openWrite(); + } if ($this->_compress) { $this->_close(); - if (!@rename($this->_tarname, $this->_tarname.".tmp")) { - $this->_error('Error while renaming \''.$this->_tarname - .'\' to temporary file \''.$this->_tarname - .'.tmp\''); + if (!@rename($this->_tarname, $this->_tarname . ".tmp")) { + $this->_error( + 'Error while renaming \'' . $this->_tarname + . '\' to temporary file \'' . $this->_tarname + . '.tmp\'' + ); return false; } - if ($this->_compress_type == 'gz') - $v_temp_tar = @gzopen($this->_tarname.".tmp", "rb"); - elseif ($this->_compress_type == 'bz2') - $v_temp_tar = @bzopen($this->_tarname.".tmp", "r"); + if ($this->_compress_type == 'gz') { + $v_temp_tar = @gzopen($this->_tarname . ".tmp", "rb"); + } elseif ($this->_compress_type == 'bz2') { + $v_temp_tar = @bzopen($this->_tarname . ".tmp", "r"); + } elseif ($this->_compress_type == 'lzma2') { + $v_temp_tar = @xzopen($this->_tarname . ".tmp", "r"); + } + if ($v_temp_tar == 0) { - $this->_error('Unable to open file \''.$this->_tarname - .'.tmp\' in binary read mode'); - @rename($this->_tarname.".tmp", $this->_tarname); + $this->_error( + 'Unable to open file \'' . $this->_tarname + . '.tmp\' in binary read mode' + ); + @rename($this->_tarname . ".tmp", $this->_tarname); return false; } if (!$this->_openWrite()) { - @rename($this->_tarname.".tmp", $this->_tarname); + @rename($this->_tarname . ".tmp", $this->_tarname); return false; } if ($this->_compress_type == 'gz') { + $end_blocks = 0; + while (!@gzeof($v_temp_tar)) { $v_buffer = @gzread($v_temp_tar, 512); - if ($v_buffer == ARCHIVE_TAR_END_BLOCK) { + if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) { + $end_blocks++; // do not copy end blocks, we will re-make them // after appending continue; + } elseif ($end_blocks > 0) { + for ($i = 0; $i < $end_blocks; $i++) { + $this->_writeBlock(ARCHIVE_TAR_END_BLOCK); + } + $end_blocks = 0; } $v_binary_data = pack("a512", $v_buffer); $this->_writeBlock($v_binary_data); } @gzclose($v_temp_tar); - } - elseif ($this->_compress_type == 'bz2') { + } elseif ($this->_compress_type == 'bz2') { + $end_blocks = 0; + while (strlen($v_buffer = @bzread($v_temp_tar, 512)) > 0) { - if ($v_buffer == ARCHIVE_TAR_END_BLOCK) { + if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) { + $end_blocks++; + // do not copy end blocks, we will re-make them + // after appending continue; + } elseif ($end_blocks > 0) { + for ($i = 0; $i < $end_blocks; $i++) { + $this->_writeBlock(ARCHIVE_TAR_END_BLOCK); + } + $end_blocks = 0; } $v_binary_data = pack("a512", $v_buffer); $this->_writeBlock($v_binary_data); } @bzclose($v_temp_tar); - } + } elseif ($this->_compress_type == 'lzma2') { + $end_blocks = 0; + + while (strlen($v_buffer = @xzread($v_temp_tar, 512)) > 0) { + if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) { + $end_blocks++; + // do not copy end blocks, we will re-make them + // after appending + continue; + } elseif ($end_blocks > 0) { + for ($i = 0; $i < $end_blocks; $i++) { + $this->_writeBlock(ARCHIVE_TAR_END_BLOCK); + } + $end_blocks = 0; + } + $v_binary_data = pack("a512", $v_buffer); + $this->_writeBlock($v_binary_data); + } - if (!@drupal_unlink($this->_tarname.".tmp")) { - $this->_error('Error while deleting temporary file \'' - .$this->_tarname.'.tmp\''); + @xzclose($v_temp_tar); } + if (!@drupal_unlink($this->_tarname . ".tmp")) { + $this->_error( + 'Error while deleting temporary file \'' + . $this->_tarname . '.tmp\'' + ); + } } else { // ----- For not compressed tar, just add files before the last - // one or two 512 bytes block - if (!$this->_openReadWrite()) - return false; + // one or two 512 bytes block + if (!$this->_openReadWrite()) { + return false; + } clearstatcache(); $v_size = filesize($this->_tarname); @@ -1760,32 +2324,34 @@ class Archive_Tar // extends PEAR fseek($this->_file, $v_size - 1024); if (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) { fseek($this->_file, $v_size - 1024); - } - elseif (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) { + } elseif (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) { fseek($this->_file, $v_size - 512); } } return true; } - // }}} - // {{{ _append() - function _append($p_filelist, $p_add_dir='', $p_remove_dir='') + /** + * @param $p_filelist + * @param string $p_add_dir + * @param string $p_remove_dir + * @return bool + */ + public function _append($p_filelist, $p_add_dir = '', $p_remove_dir = '') { - if (!$this->_openAppend()) + if (!$this->_openAppend()) { return false; + } - if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir)) - $this->_writeFooter(); + if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir)) { + $this->_writeFooter(); + } $this->_close(); return true; } - // }}} - - // {{{ _dirCheck() /** * Check if a directory exists and create it (including parent @@ -1793,24 +2359,25 @@ class Archive_Tar // extends PEAR * * @param string $p_dir directory to check * - * @return bool TRUE if the directory exists or was created + * @return bool true if the directory exists or was created */ - function _dirCheck($p_dir) + public function _dirCheck($p_dir) { clearstatcache(); - if ((@is_dir($p_dir)) || ($p_dir == '')) + if ((@is_dir($p_dir)) || ($p_dir == '')) { return true; + } $p_parent_dir = dirname($p_dir); if (($p_parent_dir != $p_dir) && ($p_parent_dir != '') && - (!$this->_dirCheck($p_parent_dir))) - return false; + (!$this->_dirCheck($p_parent_dir)) + ) { + return false; + } - // Drupal integration. - // Changed the code to use drupal_mkdir() instead of mkdir(). - if (!@drupal_mkdir($p_dir, 0777)) { + if (!@mkdir($p_dir, 0777)) { $this->_error("Unable to create directory '$p_dir'"); return false; } @@ -1818,10 +2385,6 @@ class Archive_Tar // extends PEAR return true; } - // }}} - - // {{{ _pathReduction() - /** * Compress path by changing for example "/dir/foo/../bar" to "/dir/bar", * rand emove double slashes. @@ -1829,11 +2392,8 @@ class Archive_Tar // extends PEAR * @param string $p_dir path to reduce * * @return string reduced path - * - * @access private - * */ - function _pathReduction($p_dir) + private function _pathReduction($p_dir) { $v_result = ''; @@ -1843,50 +2403,57 @@ class Archive_Tar // extends PEAR $v_list = explode('/', $p_dir); // ----- Study directories from last to first - for ($i=sizeof($v_list)-1; $i>=0; $i--) { + for ($i = sizeof($v_list) - 1; $i >= 0; $i--) { // ----- Look for current path if ($v_list[$i] == ".") { // ----- Ignore this directory // Should be the first $i=0, but no check is done - } - else if ($v_list[$i] == "..") { - // ----- Ignore it and ignore the $i-1 - $i--; - } - else if ( ($v_list[$i] == '') - && ($i!=(sizeof($v_list)-1)) - && ($i!=0)) { - // ----- Ignore only the double '//' in path, - // but not the first and last / } else { - $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?'/' - .$v_result:''); + if ($v_list[$i] == "..") { + // ----- Ignore it and ignore the $i-1 + $i--; + } else { + if (($v_list[$i] == '') + && ($i != (sizeof($v_list) - 1)) + && ($i != 0) + ) { + // ----- Ignore only the double '//' in path, + // but not the first and last / + } else { + $v_result = $v_list[$i] . ($i != (sizeof($v_list) - 1) ? '/' + . $v_result : ''); + } + } } } } - $v_result = strtr($v_result, '\\', '/'); + + if (defined('OS_WINDOWS') && OS_WINDOWS) { + $v_result = strtr($v_result, '\\', '/'); + } + return $v_result; } - // }}} - - // {{{ _translateWinPath() - function _translateWinPath($p_path, $p_remove_disk_letter=true) + /** + * @param $p_path + * @param bool $p_remove_disk_letter + * @return string + */ + public function _translateWinPath($p_path, $p_remove_disk_letter = true) { - if (defined('OS_WINDOWS') && OS_WINDOWS) { - // ----- Look for potential disk letter - if ( ($p_remove_disk_letter) - && (($v_position = strpos($p_path, ':')) != false)) { - $p_path = substr($p_path, $v_position+1); - } - // ----- Change potential windows directory separator - if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) { - $p_path = strtr($p_path, '\\', '/'); - } - } - return $p_path; + if (defined('OS_WINDOWS') && OS_WINDOWS) { + // ----- Look for potential disk letter + if (($p_remove_disk_letter) + && (($v_position = strpos($p_path, ':')) != false) + ) { + $p_path = substr($p_path, $v_position + 1); + } + // ----- Change potential windows directory separator + if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0, 1) == '\\')) { + $p_path = strtr($p_path, '\\', '/'); + } + } + return $p_path; } - // }}} - } -?> diff --git a/site/modules/system/system.test b/site/modules/system/system.test index 99e0cbe..9eaf562 100644 --- a/site/modules/system/system.test +++ b/site/modules/system/system.test @@ -389,6 +389,18 @@ class ModuleDependencyTestCase extends ModuleTestCase { ); } + /** + * Checks functionality of project namespaces for dependencies. + */ + function testProjectNamespaceForDependencies() { + // Enable module with project namespace to ensure nothing breaks. + $edit = array( + 'modules[Testing][system_project_namespace_test][enable]' => TRUE, + ); + $this->drupalPost('admin/modules', $edit, t('Save configuration')); + $this->assertModules(array('system_project_namespace_test'), TRUE); + } + /** * Attempt to enable translation module without locale enabled. */ @@ -556,6 +568,34 @@ class ModuleDependencyTestCase extends ModuleTestCase { $this->drupalPost(NULL, NULL, t('Uninstall')); $this->assertText(t('The selected modules have been uninstalled.'), 'Modules status has been updated.'); } + + /** + * Tests whether the correct module metadata is returned. + */ + function testModuleMetaData() { + // Generate the list of available modules. + $modules = system_rebuild_module_data(); + // Check that the mtime field exists for the system module. + $this->assertTrue(!empty($modules['system']->info['mtime']), 'The system.info file modification time field is present.'); + // Use 0 if mtime isn't present, to avoid an array index notice. + $test_mtime = !empty($modules['system']->info['mtime']) ? $modules['system']->info['mtime'] : 0; + // Ensure the mtime field contains a number that is greater than zero. + $this->assertTrue(is_numeric($test_mtime) && ($test_mtime > 0), 'The system.info file modification time field contains a timestamp.'); + } + + /** + * Tests whether the correct theme metadata is returned. + */ + function testThemeMetaData() { + // Generate the list of available themes. + $themes = system_rebuild_theme_data(); + // Check that the mtime field exists for the bartik theme. + $this->assertTrue(!empty($themes['bartik']->info['mtime']), 'The bartik.info file modification time field is present.'); + // Use 0 if mtime isn't present, to avoid an array index notice. + $test_mtime = !empty($themes['bartik']->info['mtime']) ? $themes['bartik']->info['mtime'] : 0; + // Ensure the mtime field contains a number that is greater than zero. + $this->assertTrue(is_numeric($test_mtime) && ($test_mtime > 0), 'The bartik.info file modification time field contains a timestamp.'); + } } /** @@ -686,7 +726,7 @@ class IPAddressBlockingTestCase extends DrupalWebTestCase { // Block a valid IP address. $edit = array(); - $edit['ip'] = '192.168.1.1'; + $edit['ip'] = '1.2.3.3'; $this->drupalPost('admin/config/people/ip-blocking', $edit, t('Add')); $ip = db_query("SELECT iid from {blocked_ips} WHERE ip = :ip", array(':ip' => $edit['ip']))->fetchField(); $this->assertTrue($ip, t('IP address found in database.')); @@ -694,7 +734,7 @@ class IPAddressBlockingTestCase extends DrupalWebTestCase { // Try to block an IP address that's already blocked. $edit = array(); - $edit['ip'] = '192.168.1.1'; + $edit['ip'] = '1.2.3.3'; $this->drupalPost('admin/config/people/ip-blocking', $edit, t('Add')); $this->assertText(t('This IP address is already blocked.')); @@ -730,6 +770,25 @@ class IPAddressBlockingTestCase extends DrupalWebTestCase { // $this->drupalPost('admin/config/people/ip-blocking', $edit, t('Save')); // $this->assertText(t('You may not block your own IP address.')); } + + /** + * Test duplicate IP addresses are not present in the 'blocked_ips' table. + */ + function testDuplicateIpAddress() { + drupal_static_reset('ip_address'); + $submit_ip = $_SERVER['REMOTE_ADDR'] = '192.168.1.1'; + system_block_ip_action(); + system_block_ip_action(); + $ip_count = db_query("SELECT iid from {blocked_ips} WHERE ip = :ip", array(':ip' => $submit_ip))->rowCount(); + $this->assertEqual('1', $ip_count); + drupal_static_reset('ip_address'); + $submit_ip = $_SERVER['REMOTE_ADDR'] = ' '; + system_block_ip_action(); + system_block_ip_action(); + system_block_ip_action(); + $ip_count = db_query("SELECT iid from {blocked_ips} WHERE ip = :ip", array(':ip' => $submit_ip))->rowCount(); + $this->assertEqual('1', $ip_count); + } } class CronRunTestCase extends DrupalWebTestCase { @@ -865,6 +924,84 @@ class CronRunTestCase extends DrupalWebTestCase { $result = variable_get('common_test_cron'); $this->assertEqual($result, 'success', 'Cron correctly handles exceptions thrown during hook_cron() invocations.'); } + + /** + * Tests that hook_flush_caches() is not invoked on every single cron run. + * + * @see system_cron() + */ + public function testCronCacheExpiration() { + module_enable(array('system_cron_test')); + variable_del('system_cron_test_flush_caches'); + + // Invoke cron the first time: hook_flush_caches() should be called and then + // get cached. + drupal_cron_run(); + $this->assertEqual(variable_get('system_cron_test_flush_caches'), 1, 'hook_flush_caches() was invoked the first time.'); + $cache = cache_get('system_cache_tables'); + $this->assertEqual(empty($cache), FALSE, 'Cache is filled with cache table data.'); + + // Run cron again and ensure that hook_flush_caches() is not called. + variable_del('system_cron_test_flush_caches'); + drupal_cron_run(); + $this->assertNull(variable_get('system_cron_test_flush_caches'), 'hook_flush_caches() was not invoked the second time.'); + } + +} + +/** + * Test execution of the cron queue. + */ +class CronQueueTestCase extends DrupalWebTestCase { + /** + * Implement getInfo(). + */ + public static function getInfo() { + return array( + 'name' => 'Cron queue functionality', + 'description' => 'Tests the cron queue runner.', + 'group' => 'System' + ); + } + + function setUp() { + parent::setUp(array('common_test', 'common_test_cron_helper', 'cron_queue_test')); + } + + /** + * Tests that exceptions thrown by workers are handled properly. + */ + function testExceptions() { + $queue = DrupalQueue::get('cron_queue_test_exception'); + + // Enqueue an item for processing. + $queue->createItem(array($this->randomName() => $this->randomName())); + + // Run cron; the worker for this queue should throw an exception and handle + // it. + $this->cronRun(); + + // The item should be left in the queue. + $this->assertEqual($queue->numberOfItems(), 1, 'Failing item still in the queue after throwing an exception.'); + } + + /** + * Tests worker defined as a class method callable. + */ + function testCallable() { + $queue = DrupalQueue::get('cron_queue_test_callback'); + + // Enqueue an item for processing. + $queue->createItem(array($this->randomName() => $this->randomName())); + + // Run cron; the worker should perform the task and delete the item from the + // queue. + $this->cronRun(); + + // The queue should be empty. + $this->assertEqual($queue->numberOfItems(), 0); + } + } class AdminMetaTagTestCase extends DrupalWebTestCase { @@ -1002,6 +1139,11 @@ class PageNotFoundTestCase extends DrupalWebTestCase { ); $node = $this->drupalCreateNode($edit); + // As node IDs must be integers, make sure requests for non-integer IDs + // return a page not found error. + $this->drupalGet('node/invalid'); + $this->assertResponse(404); + // Use a custom 404 page. $this->drupalPost('admin/config/system/site-information', array('site_404' => 'node/' . $node->nid), t('Save configuration')); @@ -1227,7 +1369,23 @@ class DateTimeFunctionalTest extends DrupalWebTestCase { $this->assertEqual($this->getUrl(), url('admin/config/regional/date-time/formats', array('absolute' => TRUE)), 'Correct page redirection.'); $this->assertText(t('Custom date format updated.'), 'Custom date format successfully updated.'); + // Check that ajax callback is protected by CSRF token. + $this->drupalGet('admin/config/regional/date-time/formats/lookup', array('query' => array('format' => 'Y m d'))); + $this->assertResponse(403, 'Access denied with no token'); + $this->drupalGet('admin/config/regional/date-time/formats/lookup', array('query' => array('token' => 'invalid', 'format' => 'Y m d'))); + $this->assertResponse(403, 'Access denied with invalid token'); + $this->drupalGet('admin/config/regional/date-time/formats'); + $this->clickLink(t('edit')); + $settings = $this->drupalGetSettings(); + $lookup_url = $settings['dateTime']['date-format']['lookup']; + preg_match('/token=([^&]+)/', $lookup_url, $matches); + $this->assertFalse(empty($matches[1]), 'Found token value'); + $this->drupalGet('admin/config/regional/date-time/formats/lookup', array('query' => array('token' => $matches[1], 'format' => 'Y m d'))); + $this->assertResponse(200, 'Access allowed with valid token'); + $this->assertText(format_date(time(), 'custom', 'Y m d')); + // Delete custom date format. + $this->drupalGet('admin/config/regional/date-time/formats'); $this->clickLink(t('delete')); $this->drupalPost($this->getUrl(), array(), t('Remove')); $this->assertEqual($this->getUrl(), url('admin/config/regional/date-time/formats', array('absolute' => TRUE)), 'Correct page redirection.'); @@ -1303,6 +1461,60 @@ class DateTimeFunctionalTest extends DrupalWebTestCase { } } +/** + * Tests date format configuration. + */ +class DateFormatTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Date format', + 'description' => 'Test date format configuration and defaults.', + 'group' => 'System', + ); + } + + function setUp() { + parent::setUp(); + + // Create admin user and log in admin user. + $this->admin_user = $this->drupalCreateUser(array('administer site configuration')); + $this->drupalLogin($this->admin_user); + } + + /** + * Test the default date type formats are consistent. + */ + function testDefaultDateFormats() { + // These are the default format values from format_date(). + $default_formats = array( + 'short' => 'm/d/Y - H:i', + 'medium' => 'D, m/d/Y - H:i', + 'long' => 'l, F j, Y - H:i', + ); + + // Clear the date format variables. + variable_del('date_format_short'); + variable_del('date_format_medium'); + variable_del('date_format_long'); + + $this->drupalGet('admin/config/regional/date-time'); + + foreach ($default_formats as $format_name => $format_value) { + $id = 'edit-date-format-' . $format_name; + // Check that the configuration fields match the default format. + $this->assertOptionSelected( + $id, + $format_value, + format_string('The @type format type matches the expected format @format.', + array( + '@type' => $format_name, + '@format' => $format_value, + ) + )); + } + } +} + class PageTitleFiltering extends DrupalWebTestCase { protected $content_user; protected $saved_title; @@ -2215,6 +2427,20 @@ class UpdateScriptFunctionalTest extends DrupalWebTestCase { $this->update_user = $this->drupalCreateUser(array('administer software updates')); } + /** + * Tests that there are no pending updates for the first test method. + */ + function testNoPendingUpdates() { + // Ensure that for the first test method in a class, there are no pending + // updates. This tests a drupal_get_schema_versions() bug that previously + // led to the wrong schema version being recorded for the initial install + // of a child site during automated testing. + $this->drupalLogin($this->update_user); + $this->drupalGet($this->update_url, array('external' => TRUE)); + $this->drupalPost(NULL, array(), t('Continue')); + $this->assertText(t('No pending updates.'), 'End of update process was reached.'); + } + /** * Tests access to the update script. */ @@ -2296,6 +2522,12 @@ class UpdateScriptFunctionalTest extends DrupalWebTestCase { $this->assertText('This is a requirements error provided by the update_script_test module.'); $this->clickLink('try again'); $this->assertText('This is a requirements error provided by the update_script_test module.'); + + // Check if the optional 'value' key displays without a notice. + variable_set('update_script_test_requirement_type', REQUIREMENT_INFO); + $this->drupalGet($this->update_url, array('external' => TRUE)); + $this->assertText('This is a requirements info provided by the update_script_test module.'); + $this->assertNoText('Notice: Undefined index: value in theme_status_report()'); } /** @@ -2712,3 +2944,122 @@ class TokenScanTest extends DrupalWebTestCase { } } +/** + * Test case for drupal_valid_token(). + */ +class SystemValidTokenTest extends DrupalUnitTestCase { + + /** + * Flag to indicate whether PHP error reportings should be asserted. + * + * @var bool + */ + protected $assertErrors = TRUE; + + public static function getInfo() { + return array( + 'name' => 'Token validation', + 'description' => 'Test the security token validation.', + 'group' => 'System', + ); + } + + /** + * Tests invalid invocations of drupal_valid_token() that must return FALSE. + */ + public function testTokenValidation() { + // The following checks will throw PHP notices, so we disable error + // assertions. + $this->assertErrors = FALSE; + $this->assertFalse(drupal_valid_token(NULL, new stdClass()), 'Token NULL, value object returns FALSE.'); + $this->assertFalse(drupal_valid_token(0, array()), 'Token 0, value array returns FALSE.'); + $this->assertFalse(drupal_valid_token('', array()), "Token '', value array returns FALSE."); + $this->assertFalse('' === drupal_get_token(array()), 'Token generation does not return an empty string on invalid parameters.'); + $this->assertErrors = TRUE; + + $this->assertFalse(drupal_valid_token(TRUE, 'foo'), 'Token TRUE, value foo returns FALSE.'); + $this->assertFalse(drupal_valid_token(0, 'foo'), 'Token 0, value foo returns FALSE.'); + } + + /** + * Overrides DrupalTestCase::errorHandler(). + */ + public function errorHandler($severity, $message, $file = NULL, $line = NULL) { + if ($this->assertErrors) { + return parent::errorHandler($severity, $message, $file, $line); + } + return TRUE; + } +} + +/** + * Tests drupal_set_message() and related functions. + */ +class DrupalSetMessageTest extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Messages', + 'description' => 'Tests that messages can be displayed using drupal_set_message().', + 'group' => 'System', + ); + } + + function setUp() { + parent::setUp('system_test'); + } + + /** + * Tests setting messages and removing one before it is displayed. + */ + function testSetRemoveMessages() { + // The page at system-test/drupal-set-message sets two messages and then + // removes the first before it is displayed. + $this->drupalGet('system-test/drupal-set-message'); + $this->assertNoText('First message (removed).'); + $this->assertText('Second message (not removed).'); + } +} + +/** + * Tests confirm form destinations. + */ +class ConfirmFormTest extends DrupalWebTestCase { + protected $admin_user; + + public static function getInfo() { + return array( + 'name' => 'Confirm form', + 'description' => 'Tests that the confirm form does not use external destinations.', + 'group' => 'System', + ); + } + + function setUp() { + parent::setUp(); + + $this->admin_user = $this->drupalCreateUser(array('administer users')); + $this->drupalLogin($this->admin_user); + } + + /** + * Tests that the confirm form does not use external destinations. + */ + function testConfirmForm() { + $this->drupalGet('user/1/cancel'); + $this->assertCancelLinkUrl(url('user/1')); + $this->drupalGet('user/1/cancel', array('query' => array('destination' => 'node'))); + $this->assertCancelLinkUrl(url('node')); + $this->drupalGet('user/1/cancel', array('query' => array('destination' => 'http://example.com'))); + $this->assertCancelLinkUrl(url('user/1')); + } + + /** + * Asserts that a cancel link is present pointing to the provided URL. + */ + function assertCancelLinkUrl($url, $message = '', $group = 'Other') { + $links = $this->xpath('//a[normalize-space(text())=:label and @href=:url]', array(':label' => t('Cancel'), ':url' => $url)); + $message = ($message ? $message : format_string('Cancel link with url %url found.', array('%url' => $url))); + return $this->assertTrue(isset($links[0]), $message, $group); + } +} diff --git a/site/modules/system/system.updater.inc b/site/modules/system/system.updater.inc index a14d788..2a32c4b 100644 --- a/site/modules/system/system.updater.inc +++ b/site/modules/system/system.updater.inc @@ -24,7 +24,7 @@ class ModuleUpdater extends Updater implements DrupalUpdaterInterface { * found on your system, and if there was a copy in sites/all, we'd see it. */ public function getInstallDirectory() { - if ($relative_path = drupal_get_path('module', $this->name)) { + if ($this->isInstalled() && ($relative_path = drupal_get_path('module', $this->name))) { $relative_path = dirname($relative_path); } else { @@ -34,7 +34,7 @@ class ModuleUpdater extends Updater implements DrupalUpdaterInterface { } public function isInstalled() { - return (bool) drupal_get_path('module', $this->name); + return (bool) drupal_get_filename('module', $this->name, NULL, FALSE); } public static function canUpdateDirectory($directory) { @@ -109,7 +109,7 @@ class ThemeUpdater extends Updater implements DrupalUpdaterInterface { * found on your system, and if there was a copy in sites/all, we'd see it. */ public function getInstallDirectory() { - if ($relative_path = drupal_get_path('theme', $this->name)) { + if ($this->isInstalled() && ($relative_path = drupal_get_path('theme', $this->name))) { $relative_path = dirname($relative_path); } else { @@ -119,7 +119,7 @@ class ThemeUpdater extends Updater implements DrupalUpdaterInterface { } public function isInstalled() { - return (bool) drupal_get_path('theme', $this->name); + return (bool) drupal_get_filename('theme', $this->name, NULL, FALSE); } static function canUpdateDirectory($directory) { diff --git a/site/modules/system/tests/cron_queue_test.info b/site/modules/system/tests/cron_queue_test.info new file mode 100644 index 0000000..f054896 --- /dev/null +++ b/site/modules/system/tests/cron_queue_test.info @@ -0,0 +1,11 @@ +name = Cron Queue test +description = 'Support module for the cron queue runner.' +package = Testing +version = VERSION +core = 7.x +hidden = TRUE + +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" +project = "drupal" +datestamp = "1524673284" diff --git a/site/modules/system/tests/cron_queue_test.module b/site/modules/system/tests/cron_queue_test.module new file mode 100644 index 0000000..0df6396 --- /dev/null +++ b/site/modules/system/tests/cron_queue_test.module @@ -0,0 +1,27 @@ + 'cron_queue_test_exception', + ); + $queues['cron_queue_test_callback'] = array( + 'worker callback' => array('CronQueueTestCallbackClass', 'foo'), + ); + + return $queues; +} + +function cron_queue_test_exception($item) { + throw new Exception('That is not supposed to happen.'); +} + +class CronQueueTestCallbackClass { + + static public function foo() { + // Do nothing. + } + +} diff --git a/site/modules/system/tests/system_cron_test.info b/site/modules/system/tests/system_cron_test.info new file mode 100644 index 0000000..ea9c711 --- /dev/null +++ b/site/modules/system/tests/system_cron_test.info @@ -0,0 +1,11 @@ +name = System Cron Test +description = 'Support module for testing the system_cron().' +package = Testing +version = VERSION +core = 7.x +hidden = TRUE + +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" +project = "drupal" +datestamp = "1524673284" diff --git a/site/modules/system/tests/system_cron_test.module b/site/modules/system/tests/system_cron_test.module new file mode 100644 index 0000000..9ef80e2 --- /dev/null +++ b/site/modules/system/tests/system_cron_test.module @@ -0,0 +1,15 @@ + $bundle->type, 'settings' => array(), 'description' => 'Debris left over after upgrade from Drupal 6', + 'required' => FALSE, 'widget' => array( 'type' => 'taxonomy_autocomplete', 'module' => 'taxonomy', @@ -557,7 +558,7 @@ function taxonomy_update_7005(&$sandbox) { // of term references stored so far for the current revision, which // provides the delta value for each term reference data insert. The // deltas are reset for each new revision. - + $conditions = array( 'type' => 'taxonomy_term_reference', 'deleted' => 0, @@ -638,6 +639,10 @@ function taxonomy_update_7005(&$sandbox) { 'type' => 'int', 'not null' => FALSE, ), + 'status' => array( + 'type' => 'int', + 'not null' => FALSE, + ), 'is_current' => array( 'type' => 'int', 'unsigned' => TRUE, @@ -670,6 +675,7 @@ function taxonomy_update_7005(&$sandbox) { $query->addField('n', 'type'); $query->addField('n2', 'created'); $query->addField('n2', 'sticky'); + $query->addField('n2', 'status'); $query->addField('n2', 'nid', 'is_current'); // This query must return a consistent ordering across multiple calls. // We need them ordered by node vid (since we use that to decide when @@ -698,7 +704,7 @@ function taxonomy_update_7005(&$sandbox) { // We do each pass in batches of 1000. $batch = 1000; - $result = db_query_range('SELECT vocab_id, tid, nid, vid, type, created, sticky, is_current FROM {taxonomy_update_7005} ORDER BY n', $sandbox['last'], $batch); + $result = db_query_range('SELECT vocab_id, tid, nid, vid, type, created, sticky, status, is_current FROM {taxonomy_update_7005} ORDER BY n', $sandbox['last'], $batch); if (isset($sandbox['cursor'])) { $values = $sandbox['cursor']['values']; $deltas = $sandbox['cursor']['deltas']; @@ -765,12 +771,14 @@ function taxonomy_update_7005(&$sandbox) { // is_current column is a node ID if this revision is also current. if ($record->is_current) { db_insert($table_name)->fields($columns)->values($values)->execute(); - - // Update the {taxonomy_index} table. - db_insert('taxonomy_index') - ->fields(array('nid', 'tid', 'sticky', 'created',)) - ->values(array($record->nid, $record->tid, $record->sticky, $record->created)) - ->execute(); + // Only insert a record in the taxonomy index if the node is published. + if ($record->status) { + // Update the {taxonomy_index} table. + db_insert('taxonomy_index') + ->fields(array('nid', 'tid', 'sticky', 'created',)) + ->values(array($record->nid, $record->tid, $record->sticky, $record->created)) + ->execute(); + } } } @@ -888,3 +896,44 @@ function taxonomy_update_7010() { )); } +/** + * @addtogroup updates-7.x-extra + * @{ + */ + +/** + * Drop unpublished nodes from the index. + */ +function taxonomy_update_7011(&$sandbox) { + // Initialize information needed by the batch update system. + if (!isset($sandbox['progress'])) { + $sandbox['progress'] = 0; + $sandbox['max'] = db_query('SELECT COUNT(DISTINCT n.nid) FROM {node} n INNER JOIN {taxonomy_index} t ON n.nid = t.nid WHERE n.status = :status', array(':status' => NODE_NOT_PUBLISHED))->fetchField(); + // If there's no data, don't bother with the extra work. + if (empty($sandbox['max'])) { + return; + } + } + + // Process records in groups of 5000. + $limit = 5000; + $nids = db_query_range('SELECT DISTINCT n.nid FROM {node} n INNER JOIN {taxonomy_index} t ON n.nid = t.nid WHERE n.status = :status', 0, $limit, array(':status' => NODE_NOT_PUBLISHED))->fetchCol(); + if (!empty($nids)) { + db_delete('taxonomy_index') + ->condition('nid', $nids) + ->execute(); + } + + // Update our progress information for the batch update. + $sandbox['progress'] += $limit; + + // Indicate our current progress to the batch update system, if the update is + // not yet complete. + if ($sandbox['progress'] < $sandbox['max']) { + $sandbox['#finished'] = $sandbox['progress'] / $sandbox['max']; + } +} + +/** + * @} End of "addtogroup updates-7.x-extra". + */ diff --git a/site/modules/taxonomy/taxonomy.module b/site/modules/taxonomy/taxonomy.module index 7ad28e9..981649d 100644 --- a/site/modules/taxonomy/taxonomy.module +++ b/site/modules/taxonomy/taxonomy.module @@ -25,7 +25,7 @@ function taxonomy_help($path, $arg) { $output .= '

                          ' . t('Uses') . '

                          '; $output .= '
                          '; $output .= '
                          ' . t('Creating vocabularies') . '
                          '; - $output .= '
                          ' . t('Users with sufficient permissions can create vocabularies and terms through the Taxonomy page. The page listing the terms provides a drag-and-drop interface for controlling the order of the terms and sub-terms within a vocabulary, in a hierarchical fashion. A controlled vocabulary classifying music by genre with terms and sub-terms could look as follows:', array('@taxo' => url('admin/structure/taxonomy'), '@perm' => url('admin/people/permissions', array('fragment'=>'module-taxonomy')))); + $output .= '
                          ' . t('Users with sufficient permissions can create vocabularies and terms through the Taxonomy page. The page listing the terms provides a drag-and-drop interface for controlling the order of the terms and sub-terms within a vocabulary, in a hierarchical fashion. A controlled vocabulary classifying music by genre with terms and sub-terms could look as follows:', array('@taxo' => url('admin/structure/taxonomy'), '@perm' => url('admin/people/permissions', array('fragment' => 'module-taxonomy')))); $output .= '
                          • ' . t('vocabulary: Music') . '
                          • '; $output .= '
                            • ' . t('term: Jazz') . '
                            • '; $output .= '
                              • ' . t('sub-term: Swing') . '
                              • '; @@ -457,7 +457,12 @@ function taxonomy_vocabulary_save($vocabulary) { } /** - * Delete a vocabulary. + * Deletes a vocabulary. + * + * This will update all Taxonomy fields so that they don't reference the + * deleted vocabulary. It also will delete fields that have no remaining + * vocabulary references. All taxonomy terms of the deleted vocabulary + * will be deleted as well. * * @param $vid * A vocabulary ID. @@ -748,7 +753,7 @@ function taxonomy_term_delete($tid) { * @param term * A taxonomy term object. * @return - * A $page element suitable for use by drupal_page_render(). + * A $page element suitable for use by drupal_render(). */ function taxonomy_term_show($term) { return taxonomy_term_view_multiple(array($term->tid => $term), 'full'); @@ -771,15 +776,26 @@ function taxonomy_term_show($term) { * An array in the format expected by drupal_render(). */ function taxonomy_term_view_multiple($terms, $view_mode = 'teaser', $weight = 0, $langcode = NULL) { - field_attach_prepare_view('taxonomy_term', $terms, $view_mode, $langcode); - entity_prepare_view('taxonomy_term', $terms, $langcode); $build = array(); + $entities_by_view_mode = entity_view_mode_prepare('taxonomy_term', $terms, $view_mode, $langcode); + foreach ($entities_by_view_mode as $entity_view_mode => $entities) { + field_attach_prepare_view('taxonomy_term', $entities, $entity_view_mode, $langcode); + entity_prepare_view('taxonomy_term', $entities, $langcode); + + foreach ($entities as $entity) { + $build['taxonomy_terms'][$entity->tid] = taxonomy_term_view($entity, $entity_view_mode, $langcode); + } + } + foreach ($terms as $term) { - $build['taxonomy_terms'][$term->tid] = taxonomy_term_view($term, $view_mode, $langcode); $build['taxonomy_terms'][$term->tid]['#weight'] = $weight; $weight++; } + // Sort here, to preserve the input order of the entities that were passed to + // this function. + uasort($build['taxonomy_terms'], 'element_sort'); $build['taxonomy_terms']['#sorted'] = TRUE; + return $build; } @@ -812,12 +828,7 @@ function taxonomy_term_build_content($term, $view_mode = 'full', $langcode = NUL $term->content = array(); // Allow modules to change the view mode. - $context = array( - 'entity_type' => 'taxonomy_term', - 'entity' => $term, - 'langcode' => $langcode, - ); - drupal_alter('entity_view_mode', $view_mode, $context); + $view_mode = key(entity_view_mode_prepare('taxonomy_term', array($term->tid => $term), $view_mode, $langcode)); // Add the term description if the term has one and it is visible. $type = 'taxonomy_term'; @@ -1012,7 +1023,7 @@ function taxonomy_get_parents($tid) { $query->join('taxonomy_term_hierarchy', 'h', 'h.parent = t.tid'); $query->addField('t', 'tid'); $query->condition('h.tid', $tid); - $query->addTag('term_access'); + $query->addTag('taxonomy_term_access'); $query->orderBy('t.weight'); $query->orderBy('t.name'); $tids = $query->execute()->fetchCol(); @@ -1070,7 +1081,7 @@ function taxonomy_get_children($tid, $vid = 0) { if ($vid) { $query->condition('t.vid', $vid); } - $query->addTag('term_access'); + $query->addTag('taxonomy_term_access'); $query->orderBy('t.weight'); $query->orderBy('t.name'); $tids = $query->execute()->fetchCol(); @@ -1118,7 +1129,7 @@ function taxonomy_get_tree($vid, $parent = 0, $max_depth = NULL, $load_entities $query->join('taxonomy_term_hierarchy', 'h', 'h.tid = t.tid'); $result = $query ->addTag('translatable') - ->addTag('term_access') + ->addTag('taxonomy_term_access') ->fields('t') ->fields('h', array('parent')) ->condition('t.vid', $vid) @@ -1238,7 +1249,7 @@ class TaxonomyTermController extends DrupalDefaultEntityController { protected function buildQuery($ids, $conditions = array(), $revision_id = FALSE) { $query = parent::buildQuery($ids, $conditions, $revision_id); $query->addTag('translatable'); - $query->addTag('term_access'); + $query->addTag('taxonomy_term_access'); // When name is passed as a condition use LIKE. if (isset($conditions['name'])) { $query_conditions = &$query->conditions(); diff --git a/site/modules/taxonomy/taxonomy.pages.inc b/site/modules/taxonomy/taxonomy.pages.inc index 975ff12..38b24b3 100644 --- a/site/modules/taxonomy/taxonomy.pages.inc +++ b/site/modules/taxonomy/taxonomy.pages.inc @@ -150,7 +150,7 @@ function taxonomy_autocomplete($field_name = '', $tags_typed = '') { $query = db_select('taxonomy_term_data', 't'); $query->addTag('translatable'); - $query->addTag('term_access'); + $query->addTag('taxonomy_term_access'); // Do not select already entered terms. if (!empty($tags_typed)) { diff --git a/site/modules/taxonomy/taxonomy.test b/site/modules/taxonomy/taxonomy.test index 665f9ae..a4b7ee8 100644 --- a/site/modules/taxonomy/taxonomy.test +++ b/site/modules/taxonomy/taxonomy.test @@ -690,15 +690,20 @@ class TaxonomyTermTestCase extends TaxonomyWebTestCase { $term_objects[$key] = reset($term_objects[$key]); } + // Test editing the node. + $node = $this->drupalGetNodeByTitle($edit["title"]); + $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save')); + foreach ($terms as $term) { + $this->assertText($term, 'The term was retained after edit and still appears on the node page.'); + } + // Delete term 1. $this->drupalPost('taxonomy/term/' . $term_objects['term1']->tid . '/edit', array(), t('Delete')); $this->drupalPost(NULL, NULL, t('Delete')); $term_names = array($term_objects['term2']->name, $term_objects['term3']->name); - // Get the node. - $node = $this->drupalGetNodeByTitle($edit["title"]); + // Get the node and verify that the terms that should be there still are. $this->drupalGet('node/' . $node->nid); - foreach ($term_names as $term_name) { $this->assertText($term_name, format_string('The term %name appears on the node page after one term %deleted was deleted', array('%name' => $term_name, '%deleted' => $term_objects['term1']->name))); } @@ -1020,7 +1025,7 @@ class TaxonomyRSSTestCase extends TaxonomyWebTestCase { function setUp() { parent::setUp('taxonomy'); - $this->admin_user = $this->drupalCreateUser(array('administer taxonomy', 'bypass node access', 'administer content types')); + $this->admin_user = $this->drupalCreateUser(array('administer taxonomy', 'bypass node access', 'administer content types', 'administer fields')); $this->drupalLogin($this->admin_user); $this->vocabulary = $this->createVocabulary(); @@ -1978,3 +1983,113 @@ class TaxonomyEFQTestCase extends TaxonomyWebTestCase { } } + +/** + * Tests that appropriate query tags are added. + */ +class TaxonomyQueryAlterTestCase extends TaxonomyWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Taxonomy query tags', + 'description' => 'Verifies that taxonomy_term_access tags are added to queries.', + 'group' => 'Taxonomy', + ); + } + + public function setUp() { + parent::setUp('taxonomy_test'); + } + + /** + * Tests that appropriate tags are added when querying the database. + */ + public function testTaxonomyQueryAlter() { + // Create a new vocabulary and add a few terms to it. + $vocabulary = $this->createVocabulary(); + $terms = array(); + for ($i = 0; $i < 5; $i++) { + $terms[$i] = $this->createTerm($vocabulary); + } + + // Set up hierarchy. Term 2 is a child of 1. + $terms[2]->parent = array($terms[1]->tid); + taxonomy_term_save($terms[2]); + + $this->setupQueryTagTestHooks(); + $loaded_term = taxonomy_term_load($terms[0]->tid); + $this->assertEqual($loaded_term->tid, $terms[0]->tid, 'First term was loaded'); + $this->assertQueryTagTestResult(1, 'taxonomy_term_load()'); + + $this->setupQueryTagTestHooks(); + $loaded_terms = taxonomy_get_tree($vocabulary->vid); + $this->assertEqual(count($loaded_terms), count($terms), 'All terms were loaded'); + $this->assertQueryTagTestResult(1, 'taxonomy_get_tree()'); + + $this->setupQueryTagTestHooks(); + $loaded_terms = taxonomy_get_parents($terms[2]->tid); + $this->assertEqual(count($loaded_terms), 1, 'All parent terms were loaded'); + $this->assertQueryTagTestResult(2, 'taxonomy_get_parents()'); + + $this->setupQueryTagTestHooks(); + $loaded_terms = taxonomy_get_children($terms[1]->tid); + $this->assertEqual(count($loaded_terms), 1, 'All child terms were loaded'); + $this->assertQueryTagTestResult(2, 'taxonomy_get_children()'); + + $this->setupQueryTagTestHooks(); + $query = db_select('taxonomy_term_data', 't'); + $query->addField('t', 'tid'); + $query->addTag('taxonomy_term_access'); + $tids = $query->execute()->fetchCol(); + $this->assertEqual(count($tids), count($terms), 'All term IDs were retrieved'); + $this->assertQueryTagTestResult(1, 'custom db_select() with taxonomy_term_access tag (preferred)'); + + $this->setupQueryTagTestHooks(); + $query = db_select('taxonomy_term_data', 't'); + $query->addField('t', 'tid'); + $query->addTag('term_access'); + $tids = $query->execute()->fetchCol(); + $this->assertEqual(count($tids), count($terms), 'All term IDs were retrieved'); + $this->assertQueryTagTestResult(1, 'custom db_select() with term_access tag (deprecated)'); + + $this->setupQueryTagTestHooks(); + $query = new EntityFieldQuery(); + $query->entityCondition('entity_type', 'taxonomy_term'); + $query->addTag('taxonomy_term_access'); + $result = $query->execute(); + $this->assertEqual(count($result['taxonomy_term']), count($terms), 'All term IDs were retrieved'); + $this->assertQueryTagTestResult(1, 'custom EntityFieldQuery with taxonomy_term_access tag (preferred)'); + + $this->setupQueryTagTestHooks(); + $query = new EntityFieldQuery(); + $query->entityCondition('entity_type', 'taxonomy_term'); + $query->addTag('term_access'); + $result = $query->execute(); + $this->assertEqual(count($result['taxonomy_term']), count($terms), 'All term IDs were retrieved'); + $this->assertQueryTagTestResult(1, 'custom EntityFieldQuery with term_access tag (deprecated)'); + } + + /** + * Sets up the hooks in the test module. + */ + protected function setupQueryTagTestHooks() { + taxonomy_terms_static_reset(); + variable_set('taxonomy_test_query_alter', 0); + variable_set('taxonomy_test_query_term_access_alter', 0); + variable_set('taxonomy_test_query_taxonomy_term_access_alter', 0); + } + + /** + * Verifies invocation of the hooks in the test module. + * + * @param int $expected_invocations + * The number of times the hooks are expected to have been invoked. + * @param string $method + * A string describing the invoked function which generated the query. + */ + protected function assertQueryTagTestResult($expected_invocations, $method) { + $this->assertIdentical($expected_invocations, variable_get('taxonomy_test_query_alter'), 'hook_query_alter() invoked when executing ' . $method); + $this->assertIdentical($expected_invocations, variable_get('taxonomy_test_query_term_access_alter'), 'Deprecated hook_query_term_access_alter() invoked when executing ' . $method); + $this->assertIdentical($expected_invocations, variable_get('taxonomy_test_query_taxonomy_term_access_alter'), 'Preferred hook_query_taxonomy_term_access_alter() invoked when executing ' . $method); + } + +} diff --git a/site/modules/toolbar/toolbar.info b/site/modules/toolbar/toolbar.info index 19d4ab7..9ec3839 100644 --- a/site/modules/toolbar/toolbar.info +++ b/site/modules/toolbar/toolbar.info @@ -4,8 +4,7 @@ core = 7.x package = Core version = VERSION -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/tracker/tracker.info b/site/modules/tracker/tracker.info index 7ee7d6f..568a4e1 100644 --- a/site/modules/tracker/tracker.info +++ b/site/modules/tracker/tracker.info @@ -6,8 +6,7 @@ version = VERSION core = 7.x files[] = tracker.test -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/tracker/tracker.module b/site/modules/tracker/tracker.module index 8694222..ab3e748 100644 --- a/site/modules/tracker/tracker.module +++ b/site/modules/tracker/tracker.module @@ -263,7 +263,7 @@ function _tracker_add($nid, $uid, $changed) { )) ->execute(); - // Create or update the user-level data. + // Create or update the user-level data, first for the user posting. db_merge('tracker_user') ->key(array( 'nid' => $nid, @@ -274,6 +274,14 @@ function _tracker_add($nid, $uid, $changed) { 'published' => $node->status, )) ->execute(); + // Update the times for all the other users tracking the post. + db_update('tracker_user') + ->condition('nid', $nid) + ->fields(array( + 'changed' => $changed, + 'published' => $node->status, + )) + ->execute(); } /** diff --git a/site/modules/tracker/tracker.pages.inc b/site/modules/tracker/tracker.pages.inc index baa9986..fa16b65 100644 --- a/site/modules/tracker/tracker.pages.inc +++ b/site/modules/tracker/tracker.pages.inc @@ -120,7 +120,6 @@ function tracker_page($account = NULL, $set_title = FALSE) { ); $page['pager'] = array( '#theme' => 'pager', - '#quantity' => 25, '#weight' => 10, ); $page['#sorted'] = TRUE; diff --git a/site/modules/tracker/tracker.test b/site/modules/tracker/tracker.test index 66ebb84..e472978 100644 --- a/site/modules/tracker/tracker.test +++ b/site/modules/tracker/tracker.test @@ -151,7 +151,6 @@ class TrackerTest extends DrupalWebTestCase { $node = $this->drupalCreateNode(array( 'comment' => 2, - 'title' => array(LANGUAGE_NONE => array(array('value' => $this->randomName(8)))), )); // Add a comment to the page. @@ -182,6 +181,72 @@ class TrackerTest extends DrupalWebTestCase { $this->assertText('1 new', 'New comments are counted on the tracker listing pages.'); } + /** + * Tests for ordering on a users tracker listing when comments are posted. + */ + function testTrackerOrderingNewComments() { + $this->drupalLogin($this->user); + + $node_one = $this->drupalCreateNode(array( + 'title' => $this->randomName(8), + )); + + $node_two = $this->drupalCreateNode(array( + 'title' => $this->randomName(8), + )); + + // Now get other_user to track these pieces of content. + $this->drupalLogin($this->other_user); + + // Add a comment to the first page. + $comment = array( + 'subject' => $this->randomName(), + 'comment_body[' . LANGUAGE_NONE . '][0][value]' => $this->randomName(20), + ); + $this->drupalPost('comment/reply/' . $node_one->nid, $comment, t('Save')); + + // If the comment is posted in the same second as the last one then Drupal + // can't tell the difference, so we wait one second here. + sleep(1); + + // Add a comment to the second page. + $comment = array( + 'subject' => $this->randomName(), + 'comment_body[' . LANGUAGE_NONE . '][0][value]' => $this->randomName(20), + ); + $this->drupalPost('comment/reply/' . $node_two->nid, $comment, t('Save')); + + // We should at this point have in our tracker for other_user: + // 1. node_two + // 2. node_one + // Because that's the reverse order of the posted comments. + + // Now we're going to post a comment to node_one which should jump it to the + // top of the list. + + $this->drupalLogin($this->user); + // If the comment is posted in the same second as the last one then Drupal + // can't tell the difference, so we wait one second here. + sleep(1); + + // Add a comment to the second page. + $comment = array( + 'subject' => $this->randomName(), + 'comment_body[' . LANGUAGE_NONE . '][0][value]' => $this->randomName(20), + ); + $this->drupalPost('comment/reply/' . $node_one->nid, $comment, t('Save')); + + // Switch back to the other_user and assert that the order has swapped. + $this->drupalLogin($this->other_user); + $this->drupalGet('user/' . $this->other_user->uid . '/track'); + // This is a cheeky way of asserting that the nodes are in the right order + // on the tracker page. + // It's almost certainly too brittle. + $pattern = '/' . preg_quote($node_one->title) . '.+' . preg_quote($node_two->title) . '/s'; + $this->verbose($pattern); + $this->assertPattern($pattern, 'Most recently commented on node appears at the top of tracker'); + } + /** * Tests that existing nodes are indexed by cron. */ diff --git a/site/modules/translation/tests/translation_test.info b/site/modules/translation/tests/translation_test.info index f6cf50b..5e5620f 100644 --- a/site/modules/translation/tests/translation_test.info +++ b/site/modules/translation/tests/translation_test.info @@ -5,8 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/translation/translation.info b/site/modules/translation/translation.info index f70c24f..c6e7477 100644 --- a/site/modules/translation/translation.info +++ b/site/modules/translation/translation.info @@ -6,8 +6,7 @@ version = VERSION core = 7.x files[] = translation.test -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/translation/translation.module b/site/modules/translation/translation.module index 3312357..580d000 100644 --- a/site/modules/translation/translation.module +++ b/site/modules/translation/translation.module @@ -336,9 +336,13 @@ function translation_node_insert($node) { 'tnid' => $tnid, 'translate' => 0, )) - ->condition('nid', $node->translation_source->nid) + ->condition('nid', $tnid) ->execute(); + + // Flush the (untranslated) source node from the load cache. + entity_get_controller('node')->resetCache(array($tnid)); } + db_update('node') ->fields(array( 'tnid' => $tnid, @@ -368,13 +372,23 @@ function translation_node_update($node) { )) ->condition('nid', $node->nid) ->execute(); + if (!empty($node->translation['retranslate'])) { // This is the source node, asking to mark all translations outdated. - db_update('node') - ->fields(array('translate' => 1)) + $translations = db_select('node', 'n') + ->fields('n', array('nid')) ->condition('nid', $node->nid, '<>') ->condition('tnid', $node->tnid) + ->execute() + ->fetchCol(); + + db_update('node') + ->fields(array('translate' => 1)) + ->condition('nid', $translations, 'IN') ->execute(); + + // Flush the modified translation nodes from the load cache. + entity_get_controller('node')->resetCache($translations); } } } @@ -414,17 +428,22 @@ function translation_node_delete($node) { * A node object. */ function translation_remove_from_set($node) { - if (isset($node->tnid)) { + if (isset($node->tnid) && $node->tnid) { $query = db_update('node') ->fields(array( 'tnid' => 0, 'translate' => 0, )); - if (db_query('SELECT COUNT(*) FROM {node} WHERE tnid = :tnid', array(':tnid' => $node->tnid))->fetchField() == 1) { + + // Determine which nodes to apply the update to. + $set_nids = db_query('SELECT nid FROM {node} WHERE tnid = :tnid', array(':tnid' => $node->tnid))->fetchCol(); + if (count($set_nids) == 1) { // There is only one node left in the set: remove the set altogether. $query ->condition('tnid', $node->tnid) ->execute(); + + $flush_set = TRUE; } else { $query @@ -439,8 +458,14 @@ function translation_remove_from_set($node) { ->fields(array('tnid' => $new_tnid)) ->condition('tnid', $node->tnid) ->execute(); + + $flush_set = TRUE; } } + + // Flush the modified nodes from the load cache. + $nids = !empty($flush_set) ? $set_nids : array($node->nid); + entity_get_controller('node')->resetCache($nids); } } diff --git a/site/modules/trigger/tests/trigger_test.info b/site/modules/trigger/tests/trigger_test.info index b3a13d2..8486e1f 100644 --- a/site/modules/trigger/tests/trigger_test.info +++ b/site/modules/trigger/tests/trigger_test.info @@ -4,8 +4,7 @@ package = Testing core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/trigger/trigger.info b/site/modules/trigger/trigger.info index de8150e..0a6efeb 100644 --- a/site/modules/trigger/trigger.info +++ b/site/modules/trigger/trigger.info @@ -6,8 +6,7 @@ core = 7.x files[] = trigger.test configure = admin/structure/trigger -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/trigger/trigger.test b/site/modules/trigger/trigger.test index 72e0f72..09169b7 100644 --- a/site/modules/trigger/trigger.test +++ b/site/modules/trigger/trigger.test @@ -82,10 +82,10 @@ class TriggerContentTestCase extends TriggerWebTestCase { $edit[$info['property']] = !$info['expected']; $this->drupalPost('node/add/page', $edit, t('Save')); // Make sure the text we want appears. - $this->assertRaw(t('!post %title has been created.', array('!post' => 'Basic page', '%title' => $edit["title"])), t('Make sure the Basic page has actually been created')); + $this->assertRaw(t('!post %title has been created.', array('!post' => 'Basic page', '%title' => $edit["title"])), 'Make sure the Basic page has actually been created'); // Action should have been fired. $loaded_node = $this->drupalGetNodeByTitle($edit["title"]); - $this->assertTrue($loaded_node->$info['property'] == $info['expected'], t('Make sure the @action action fired.', array('@action' => $info['name']))); + $this->assertTrue($loaded_node->{$info['property']} == $info['expected'], format_string('Make sure the @action action fired.', array('@action' => $info['name']))); // Leave action assigned for next test // There should be an error when the action is assigned to the trigger @@ -94,13 +94,13 @@ class TriggerContentTestCase extends TriggerWebTestCase { // This action already assigned in this test. $edit = array('aid' => $hash); $this->drupalPost('admin/structure/trigger/node', $edit, t('Assign'), array(), array(), 'trigger-node-presave-assign-form'); - $this->assertRaw(t('The action you chose is already assigned to that trigger.'), t('Check to make sure an error occurs when assigning an action to a trigger twice.')); + $this->assertRaw(t('The action you chose is already assigned to that trigger.'), 'Check to make sure an error occurs when assigning an action to a trigger twice.'); // The action should be able to be unassigned from a trigger. $this->drupalPost('admin/structure/trigger/unassign/node/node_presave/' . $hash, array(), t('Unassign')); - $this->assertRaw(t('Action %action has been unassigned.', array('%action' => ucfirst($info['name']))), t('Check to make sure the @action action can be unassigned from the trigger.', array('@action' => $info['name']))); + $this->assertRaw(t('Action %action has been unassigned.', array('%action' => ucfirst($info['name']))), format_string('Check to make sure the @action action can be unassigned from the trigger.', array('@action' => $info['name']))); $assigned = db_query("SELECT COUNT(*) FROM {trigger_assignments} WHERE aid IN (:keys)", array(':keys' => $content_actions))->fetchField(); - $this->assertFalse($assigned, t('Check to make sure unassign worked properly at the database level.')); + $this->assertFalse($assigned, 'Check to make sure unassign worked properly at the database level.'); } } @@ -132,7 +132,7 @@ class TriggerContentTestCase extends TriggerWebTestCase { ); $this->drupalPost('admin/content', $edit, t('Update')); $count = variable_get('trigger_test_generic_any_action', 0); - $this->assertTrue($count == 2, t('Action was triggered 2 times. Actual: %count', array('%count' => $count))); + $this->assertTrue($count == 2, format_string('Action was triggered 2 times. Actual: %count', array('%count' => $count))); } /** @@ -242,11 +242,11 @@ class TriggerCronTestCase extends TriggerWebTestCase { // Make sure the non-configurable action has fired. $action_run = variable_get('trigger_test_system_cron_action', FALSE); - $this->assertTrue($action_run, t('Check that the cron run triggered the test action.')); + $this->assertTrue($action_run, 'Check that the cron run triggered the test action.'); // Make sure that both configurable actions have fired. $action_run = variable_get('trigger_test_system_cron_conf_action', 0) == 2; - $this->assertTrue($action_run, t('Check that the cron run triggered both complex actions.')); + $this->assertTrue($action_run, 'Check that the cron run triggered both complex actions.'); } } @@ -321,7 +321,7 @@ class TriggerActionTestCase extends TriggerWebTestCase { $trigger_type = preg_replace('/_.*/', '', $trigger); $this->drupalPost("admin/structure/trigger/$trigger_type", $edit, t('Assign'), array(), array(), $form_html_id); $actions = trigger_get_assigned_actions($trigger); - $this->assertTrue(!empty($actions[$action]), t('Simple action @action assigned to trigger @trigger', array('@action' => $action, '@trigger' => $trigger))); + $this->assertTrue(!empty($actions[$action]), format_string('Simple action @action assigned to trigger @trigger', array('@action' => $action, '@trigger' => $trigger))); } /** @@ -402,7 +402,7 @@ class TriggerActionTestCase extends TriggerWebTestCase { function assertSystemMessageTokenReplacement($trigger, $account) { $expected = $this->generateTokenExpandedComparison($trigger, $account); $this->assertText($expected, - t('Expected system message to contain token-replaced text "@expected" found in configured system message action', array('@expected' => $expected )) ); + format_string('Expected system message to contain token-replaced text "@expected" found in configured system message action', array('@expected' => $expected )) ); } @@ -421,7 +421,7 @@ class TriggerActionTestCase extends TriggerWebTestCase { $expected = $this->generateTokenExpandedComparison($trigger, $account); $this->assertMailString('subject', $expected, $email_depth); $this->assertMailString('body', $expected, $email_depth); - $this->assertMail('to', $account->mail, t('Mail sent to correct destination')); + $this->assertMail('to', $account->mail, 'Mail sent to correct destination'); } } @@ -517,7 +517,7 @@ class TriggerUserActionTestCase extends TriggerActionTestCase { $this->drupalPost("node/{$node->nid}", array('comment_body[und][0][value]' => t("my comment"), 'subject' => t("my comment subject")), t('Save')); // Posting a comment should have blocked this user. $account = user_load($test_user->uid, TRUE); - $this->assertTrue($account->status == 0, t('Account is blocked')); + $this->assertTrue($account->status == 0, 'Account is blocked'); $comment_author_uid = $account->uid; // Now rehabilitate the comment author so it can be be blocked again when // the comment is updated. @@ -529,7 +529,7 @@ class TriggerUserActionTestCase extends TriggerActionTestCase { // Our original comment will have been comment 1. $this->drupalPost("comment/1/edit", array('comment_body[und][0][value]' => t("my comment, updated"), 'subject' => t("my comment subject")), t('Save')); $comment_author_account = user_load($comment_author_uid, TRUE); - $this->assertTrue($comment_author_account->status == 0, t('Comment author account (uid=@uid) is blocked after update to comment', array('@uid' => $comment_author_uid))); + $this->assertTrue($comment_author_account->status == 0, format_string('Comment author account (uid=@uid) is blocked after update to comment', array('@uid' => $comment_author_uid))); // Verify that the comment was updated. $test_user = $this->drupalCreateUser(array('administer actions', 'create article content', 'access comments', 'administer comments', 'skip comment approval', 'edit own comments')); @@ -589,7 +589,7 @@ class TriggerOtherTestCase extends TriggerWebTestCase { $this->drupalPost('admin/people/create', $edit, t('Create new account')); // Verify that the action variable has been set. - $this->assertTrue(variable_get($action_id, FALSE), t('Check that creating a user triggered the test action.')); + $this->assertTrue(variable_get($action_id, FALSE), 'Check that creating a user triggered the test action.'); // Reset the action variable. variable_set($action_id, FALSE); @@ -608,8 +608,8 @@ class TriggerOtherTestCase extends TriggerWebTestCase { // Verify that the action has been assigned to the correct hook. $actions = trigger_get_assigned_actions('user_login'); - $this->assertEqual(1, count($actions), t('One Action assigned to the hook')); - $this->assertEqual($actions[$aid]['label'], $action_edit['actions_label'], t('Correct action label found.')); + $this->assertEqual(1, count($actions), 'One Action assigned to the hook'); + $this->assertEqual($actions[$aid]['label'], $action_edit['actions_label'], 'Correct action label found.'); // User should get the configured message at login. $contact_user = $this->drupalCreateUser(array('access site-wide contact form'));; @@ -643,7 +643,7 @@ class TriggerOtherTestCase extends TriggerWebTestCase { $this->drupalPost(NULL, $edit, t('Save')); // Verify that the action variable has been set. - $this->assertTrue(variable_get($action_id, FALSE), t('Check that creating a comment triggered the action.')); + $this->assertTrue(variable_get($action_id, FALSE), 'Check that creating a comment triggered the action.'); } /** @@ -679,7 +679,7 @@ class TriggerOtherTestCase extends TriggerWebTestCase { taxonomy_term_save($term); // Verify that the action variable has been set. - $this->assertTrue(variable_get($action_id, FALSE), t('Check that creating a taxonomy term triggered the action.')); + $this->assertTrue(variable_get($action_id, FALSE), 'Check that creating a taxonomy term triggered the action.'); } } @@ -723,10 +723,10 @@ class TriggerOrphanedActionsTestCase extends DrupalWebTestCase { $edit["title"] = '!SimpleTest test node! ' . $this->randomName(10); $edit["body[$langcode][0][value]"] = '!SimpleTest test body! ' . $this->randomName(32) . ' ' . $this->randomName(32); $this->drupalPost('node/add/page', $edit, t('Save')); - $this->assertRaw(t('!post %title has been created.', array('!post' => 'Basic page', '%title' => $edit["title"])), t('Make sure the Basic page has actually been created')); + $this->assertRaw(t('!post %title has been created.', array('!post' => 'Basic page', '%title' => $edit["title"])), 'Make sure the Basic page has actually been created'); // Action should have been fired. - $this->assertTrue(variable_get('trigger_test_generic_any_action', FALSE), t('Trigger test action successfully fired.')); + $this->assertTrue(variable_get('trigger_test_generic_any_action', FALSE), 'Trigger test action successfully fired.'); // Disable the module that provides the action and make sure the trigger // doesn't white screen. @@ -737,7 +737,7 @@ class TriggerOrphanedActionsTestCase extends DrupalWebTestCase { // If the node body was updated successfully we have dealt with the // unavailable action. - $this->assertRaw(t('!post %title has been updated.', array('!post' => 'Basic page', '%title' => $edit["title"])), t('Make sure the Basic page can be updated with the missing trigger function.')); + $this->assertRaw(t('!post %title has been updated.', array('!post' => 'Basic page', '%title' => $edit["title"])), 'Make sure the Basic page can be updated with the missing trigger function.'); } } diff --git a/site/modules/update/tests/aaa_update_test.info b/site/modules/update/tests/aaa_update_test.info index 0b9171c..1542255 100644 --- a/site/modules/update/tests/aaa_update_test.info +++ b/site/modules/update/tests/aaa_update_test.info @@ -4,8 +4,7 @@ package = Testing core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/update/tests/bbb_update_test.info b/site/modules/update/tests/bbb_update_test.info index 2adf08c..3efd663 100644 --- a/site/modules/update/tests/bbb_update_test.info +++ b/site/modules/update/tests/bbb_update_test.info @@ -4,8 +4,7 @@ package = Testing core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/update/tests/ccc_update_test.info b/site/modules/update/tests/ccc_update_test.info index 810ac61..9387a03 100644 --- a/site/modules/update/tests/ccc_update_test.info +++ b/site/modules/update/tests/ccc_update_test.info @@ -4,8 +4,7 @@ package = Testing core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/update/tests/themes/update_test_admintheme/update_test_admintheme.info b/site/modules/update/tests/themes/update_test_admintheme/update_test_admintheme.info new file mode 100644 index 0000000..2b1e2b9 --- /dev/null +++ b/site/modules/update/tests/themes/update_test_admintheme/update_test_admintheme.info @@ -0,0 +1,9 @@ +name = Update test admin theme +description = Test theme which is used as admin theme. +core = 7.x +hidden = TRUE + +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" +project = "drupal" +datestamp = "1524673284" diff --git a/site/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info b/site/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info index 0401560..1f361db 100644 --- a/site/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info +++ b/site/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info @@ -3,8 +3,7 @@ description = Test theme which acts as a base theme for other test subthemes. core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info b/site/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info index d6520f7..81428d2 100644 --- a/site/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info +++ b/site/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info @@ -4,8 +4,7 @@ core = 7.x base theme = update_test_basetheme hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/update/tests/update_test.info b/site/modules/update/tests/update_test.info index d1fea4d..b989a75 100644 --- a/site/modules/update/tests/update_test.info +++ b/site/modules/update/tests/update_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/update/tests/update_test.module b/site/modules/update/tests/update_test.module index 6fe4bdd..594f80f 100644 --- a/site/modules/update/tests/update_test.module +++ b/site/modules/update/tests/update_test.module @@ -11,6 +11,7 @@ function update_test_system_theme_info() { $themes['update_test_basetheme'] = drupal_get_path('module', 'update_test') . '/themes/update_test_basetheme/update_test_basetheme.info'; $themes['update_test_subtheme'] = drupal_get_path('module', 'update_test') . '/themes/update_test_subtheme/update_test_subtheme.info'; + $themes['update_test_admintheme'] = drupal_get_path('module', 'update_test') . '/themes/update_test_admintheme/update_test_admintheme.info'; return $themes; } diff --git a/site/modules/update/update.authorize.inc b/site/modules/update/update.authorize.inc index 6ddd2c5..03d3704 100644 --- a/site/modules/update/update.authorize.inc +++ b/site/modules/update/update.authorize.inc @@ -97,7 +97,9 @@ function update_authorize_run_install($filetransfer, $project, $updater_name, $l } /** - * Batch callback: Copies project to its proper place when authorized to do so. + * Implements callback_batch_operation(). + * + * Copies project to its proper place when authorized to do so. * * @param string $project * The canonical short name of the project being installed. @@ -168,7 +170,9 @@ function update_authorize_batch_copy_project($project, $updater_name, $local_url } /** - * Batch callback: Performs actions when the authorized update batch is done. + * Implements callback_batch_finished(). + * + * Performs actions when the authorized update batch is done. * * This processes the results and stashes them into SESSION such that * authorize.php will render a report. Also responsible for putting the site @@ -235,7 +239,9 @@ function update_authorize_update_batch_finished($success, $results) { } /** - * Batch callback: Performs actions when the authorized install batch is done. + * Implements callback_batch_finished(). + * + * Performs actions when the authorized install batch is done. * * This processes the results and stashes them into SESSION such that * authorize.php will render a report. Also responsible for putting the site diff --git a/site/modules/update/update.compare.inc b/site/modules/update/update.compare.inc index 6e0c5fe..e3e0de3 100644 --- a/site/modules/update/update.compare.inc +++ b/site/modules/update/update.compare.inc @@ -104,7 +104,13 @@ function update_get_projects() { * @see update_get_projects() */ function _update_process_info_list(&$projects, $list, $project_type, $status) { + $admin_theme = variable_get('admin_theme', 'seven'); foreach ($list as $file) { + // The admin theme is a special case. It should always be considered enabled + // for the purposes of update checking. + if ($file->name === $admin_theme) { + $file->status = TRUE; + } // A disabled base theme of an enabled sub-theme still has all of its code // run by the sub-theme, so we include it in our "enabled" projects list. if ($status && !$file->status && !empty($file->sub_themes)) { @@ -417,14 +423,15 @@ function update_calculate_project_data($available) { * version (e.g., 5.x-1.5-beta1, 5.x-1.5-beta2, and 5.x-1.5). Development * snapshots for a given major version are always listed last. * - * @param $project - * An array containing information about a specific project. + * @param $unused + * Input is not being used, but remains in function for API compatibility + * reasons. * @param $project_data * An array containing information about a specific project. * @param $available * Data about available project releases of a specific project. */ -function update_calculate_project_update_status($project, &$project_data, $available) { +function update_calculate_project_update_status($unused, &$project_data, $available) { foreach (array('title', 'link') as $attribute) { if (!isset($project_data[$attribute]) && isset($available[$attribute])) { $project_data[$attribute] = $available[$attribute]; diff --git a/site/modules/update/update.fetch.inc b/site/modules/update/update.fetch.inc index bf0039f..428cace 100644 --- a/site/modules/update/update.fetch.inc +++ b/site/modules/update/update.fetch.inc @@ -29,7 +29,9 @@ function update_manual_status() { } /** - * Batch callback: Processes a step in batch for fetching available update data. + * Implements callback_batch_operation(). + * + * Processes a step in batch for fetching available update data. * * @param $context * Reference to an array used for Batch API storage. @@ -77,7 +79,9 @@ function update_fetch_data_batch(&$context) { } /** - * Batch callback: Performs actions when all fetch tasks have been completed. + * Implements callback_batch_finished(). + * + * Performs actions when all fetch tasks have been completed. * * @param $success * TRUE if the batch operation was successful; FALSE if there were errors. @@ -289,7 +293,7 @@ function _update_build_fetch_url($project, $site_key = '') { $url = _update_get_fetch_url_base($project); $url .= '/' . $name . '/' . DRUPAL_CORE_COMPATIBILITY; - // Only append usage infomation if we have a site key and the project is + // Only append usage information if we have a site key and the project is // enabled. We do not want to record usage statistics for disabled projects. if (!empty($site_key) && (strpos($project['project_type'], 'disabled') === FALSE)) { // Append the site key. diff --git a/site/modules/update/update.info b/site/modules/update/update.info index 251e7cd..2ec8ee7 100644 --- a/site/modules/update/update.info +++ b/site/modules/update/update.info @@ -6,8 +6,7 @@ core = 7.x files[] = update.test configure = admin/reports/updates/settings -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/update/update.manager.inc b/site/modules/update/update.manager.inc index 85b587d..c7c4e4a 100644 --- a/site/modules/update/update.manager.inc +++ b/site/modules/update/update.manager.inc @@ -59,7 +59,7 @@ * @see update_menu() * @ingroup forms */ -function update_manager_update_form($form, $form_state = array(), $context) { +function update_manager_update_form($form, $form_state, $context) { if (!_update_manager_check_backends($form, 'update')) { return $form; } @@ -335,6 +335,8 @@ function update_manager_update_form_submit($form, &$form_state) { } /** + * Implements callback_batch_finished(). + * * Batch callback: Performs actions when the download batch is completed. * * @param $success @@ -847,7 +849,9 @@ function update_manager_file_get($url) { } /** - * Batch callback: Downloads, unpacks, and verifies a project. + * Implements callback_batch_operation(). + * + * Downloads, unpacks, and verifies a project. * * This function assumes that the provided URL points to a file archive of some * sort. The URL can have any scheme that we have a file stream wrapper to diff --git a/site/modules/update/update.module b/site/modules/update/update.module index d5728be..a59c7d7 100644 --- a/site/modules/update/update.module +++ b/site/modules/update/update.module @@ -71,7 +71,7 @@ define('UPDATE_MAX_FETCH_ATTEMPTS', 2); /** * Maximum number of seconds to try fetching available update data at a time. */ -define('UPDATE_MAX_FETCH_TIME', 5); +define('UPDATE_MAX_FETCH_TIME', 30); /** * Implements hook_help(). @@ -278,12 +278,15 @@ function update_theme() { ), 'update_report' => array( 'variables' => array('data' => NULL), + 'file' => 'update.report.inc', ), 'update_version' => array( 'variables' => array('version' => NULL, 'tag' => NULL, 'class' => array()), + 'file' => 'update.report.inc', ), 'update_status_label' => array( 'variables' => array('status' => NULL), + 'file' => 'update.report.inc', ), ); } diff --git a/site/modules/update/update.settings.inc b/site/modules/update/update.settings.inc index 5cd2414..75de6cd 100644 --- a/site/modules/update/update.settings.inc +++ b/site/modules/update/update.settings.inc @@ -26,7 +26,7 @@ function update_settings($form) { $form['update_check_disabled'] = array( '#type' => 'checkbox', - '#title' => t('Check for updates of disabled modules and themes'), + '#title' => t('Check for updates of disabled and uninstalled modules and themes'), '#default_value' => variable_get('update_check_disabled', FALSE), ); @@ -98,10 +98,11 @@ function update_settings_validate($form, &$form_state) { * Form submission handler for update_settings(). * * Also invalidates the cache of available updates if the "Check for updates of - * disabled modules and themes" setting is being changed. The available updates - * report needs to refetch available update data after this setting changes or - * it would show misleading things (e.g., listing the disabled projects on the - * site with the "No available releases found" warning). + * disabled and uninstalled modules and themes" setting is being changed. The + * available updates report needs to refetch available update data after this + * setting changes or it would show misleading things (e.g., listing the + * disabled projects on the site with the "No available releases found" + * warning). * * @see update_settings_validate() */ diff --git a/site/modules/update/update.test b/site/modules/update/update.test index 9e04cda..5ce5bb8 100644 --- a/site/modules/update/update.test +++ b/site/modules/update/update.test @@ -462,6 +462,55 @@ class UpdateTestContribCase extends UpdateTestHelper { $this->assertRaw(l(t('Update test base theme'), 'http://example.com/project/update_test_basetheme'), 'Link to the Update test base theme project appears.'); } + /** + * Tests that the admin theme is always notified about security updates. + */ + function testUpdateAdminThemeSecurityUpdate() { + // Disable the admin theme. + db_update('system') + ->fields(array('status' => 0)) + ->condition('type', 'theme') + ->condition('name', 'update_test_%', 'LIKE') + ->execute(); + + variable_set('admin_theme', 'update_test_admintheme'); + + // Define the initial state for core and the themes. + $system_info = array( + '#all' => array( + 'version' => '7.0', + ), + 'update_test_admintheme' => array( + 'project' => 'update_test_admintheme', + 'version' => '7.x-1.0', + 'hidden' => FALSE, + ), + 'update_test_basetheme' => array( + 'project' => 'update_test_basetheme', + 'version' => '7.x-1.1', + 'hidden' => FALSE, + ), + 'update_test_subtheme' => array( + 'project' => 'update_test_subtheme', + 'version' => '7.x-1.0', + 'hidden' => FALSE, + ), + ); + variable_set('update_test_system_info', $system_info); + variable_set('update_check_disabled', FALSE); + $xml_mapping = array( + // This is enough because we don't check the update status of the admin + // theme. We want to check that the admin theme is included in the list. + 'drupal' => '0', + ); + $this->refreshUpdateStatus($xml_mapping); + // The admin theme is displayed even if it's disabled. + $this->assertText('update_test_admintheme', "The admin theme is checked for update even if it's disabled"); + // The other disabled themes are not displayed. + $this->assertNoText('update_test_basetheme', 'Disabled theme is not checked for update in the list.'); + $this->assertNoText('update_test_subtheme', 'Disabled theme is not checked for update in the list.'); + } + /** * Tests that disabled themes are only shown when desired. */ @@ -800,4 +849,4 @@ class UpdateCoreUnitTestCase extends DrupalUnitTestCase { $this->assertEqual($url, $expected, "When ? is present, '$url' should be '$expected'."); } -} \ No newline at end of file +} diff --git a/site/modules/user/tests/user_form_test.info b/site/modules/user/tests/user_form_test.info index 87c91d0..b275c35 100644 --- a/site/modules/user/tests/user_form_test.info +++ b/site/modules/user/tests/user_form_test.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/user/tests/user_form_test.module b/site/modules/user/tests/user_form_test.module index 4e907f3..382bc57 100644 --- a/site/modules/user/tests/user_form_test.module +++ b/site/modules/user/tests/user_form_test.module @@ -62,3 +62,21 @@ function user_form_test_current_password($form, &$form_state, $account) { function user_form_test_current_password_submit($form, &$form_state) { drupal_set_message(t('The password has been validated and the form submitted successfully.')); } + +/** + * Implements hook_form_FORM_ID_alter(). + */ +function user_form_test_form_user_profile_form_alter(&$form, &$form_state) { + if (variable_get('user_form_test_user_profile_form_rebuild', FALSE)) { + $form['#submit'][] = 'user_form_test_user_account_submit'; + } +} + +/** + * Submit function for user_profile_form(). + */ +function user_form_test_user_account_submit($form, &$form_state) { + // Rebuild the form instead of letting the process end. This allows us to + // test for bugs that can be triggered in contributed modules. + $form_state['rebuild'] = TRUE; +} diff --git a/site/modules/user/user-picture.tpl.php b/site/modules/user/user-picture.tpl.php index ee82187..11d92cc 100644 --- a/site/modules/user/user-picture.tpl.php +++ b/site/modules/user/user-picture.tpl.php @@ -17,7 +17,7 @@ */ ?> -
                                +
                                diff --git a/site/modules/user/user.api.php b/site/modules/user/user.api.php index 3afc88a..f205a85 100644 --- a/site/modules/user/user.api.php +++ b/site/modules/user/user.api.php @@ -123,8 +123,8 @@ function hook_user_cancel($edit, $account, $method) { * description is NOT used for the radio button, but instead should provide * additional explanation to the user seeking to cancel their account. * - access: (optional) A boolean value indicating whether the user can access - * a method. If #access is defined, the method cannot be configured as default - * method. + * a method. If access is defined, the method cannot be configured as the + * default method. * * @param $methods * An array containing user account cancellation methods, keyed by method id. @@ -183,7 +183,23 @@ function hook_user_operations() { } /** - * Retrieve a list of user setting or profile information categories. + * Define a list of user settings or profile information categories. + * + * There are two steps to using hook_user_categories(): + * - Create the category with hook_user_categories(). + * - Display that category on the form ID of "user_profile_form" with + * hook_form_FORM_ID_alter(). + * + * Step one builds out the category but it won't be visible on your form until + * you explicitly tell it to do so. + * + * The function in step two should contain the following code in order to + * display your new category: + * @code + * if ($form['#user_category'] == 'mycategory') { + * // Return your form here. + * } + * @endcode * * @return * An array of associative arrays. Each inner array has elements: @@ -327,14 +343,6 @@ function hook_user_logout($account) { * The module should format its custom additions for display and add them to the * $account->content array. * - * Note that when this hook is invoked, the changes have not yet been written to - * the database, because a database transaction is still in progress. The - * transaction is not finalized until the save operation is entirely completed - * and user_save() goes out of scope. You should not rely on data in the - * database at this time as it is not updated yet. You should also note that any - * write/update database queries executed from this hook are also not committed - * immediately. Check user_save() and db_transaction() for more info. - * * @param $account * The user object on which the operation is being performed. * @param $view_mode @@ -386,7 +394,7 @@ function hook_user_view_alter(&$build) { } /** - * Inform other modules that a user role is about to be saved. + * Act on a user role being inserted or updated. * * Modules implementing this hook can act on the user role object before * it has been saved to the database. @@ -405,7 +413,7 @@ function hook_user_role_presave($role) { } /** - * Inform other modules that a user role has been added. + * Respond to creation of a new user role. * * Modules implementing this hook can act on the user role object when saved to * the database. It's recommended that you implement this hook if your module @@ -426,7 +434,7 @@ function hook_user_role_insert($role) { } /** - * Inform other modules that a user role has been updated. + * Respond to updates to a user role. * * Modules implementing this hook can act on the user role object when updated. * It's recommended that you implement this hook if your module adds additional @@ -447,7 +455,7 @@ function hook_user_role_update($role) { } /** - * Inform other modules that a user role has been deleted. + * Respond to user role deletion. * * This hook allows you act when a user role has been deleted. * If your module stores references to roles, it's recommended that you diff --git a/site/modules/user/user.info b/site/modules/user/user.info index 806a44b..331ad59 100644 --- a/site/modules/user/user.info +++ b/site/modules/user/user.info @@ -9,8 +9,7 @@ required = TRUE configure = admin/config/people stylesheets[all][] = user.css -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/modules/user/user.install b/site/modules/user/user.install index 4e1a3c2..7a74766 100644 --- a/site/modules/user/user.install +++ b/site/modules/user/user.install @@ -49,6 +49,9 @@ function user_schema() { 'columns' => array('uid' => 'uid'), ), ), + 'indexes' => array( + 'uid_module' => array('uid', 'module'), + ), ); $schema['role_permission'] = array( @@ -81,7 +84,7 @@ function user_schema() { ), 'foreign keys' => array( 'role' => array( - 'table' => 'roles', + 'table' => 'role', 'columns' => array('rid' => 'rid'), ), ), @@ -278,7 +281,7 @@ function user_schema() { 'columns' => array('uid' => 'uid'), ), 'role' => array( - 'table' => 'roles', + 'table' => 'role', 'columns' => array('rid' => 'rid'), ), ), @@ -356,11 +359,13 @@ function user_update_dependencies() { 'filter' => 7000, ); - // user_update_7012() uses the file API, which relies on the {file_managed} - // table, so it must run after system_update_7034(), which creates that - // table. + // user_update_7012() uses the file API and inserts records into the + // {file_managed} table, so it therefore must run after system_update_7061(), + // which inserts files with specific IDs into the table and therefore relies + // on the table being empty (otherwise it would accidentally overwrite + // existing records). $dependencies['user'][7012] = array( - 'system' => 7034, + 'system' => 7061, ); // user_update_7013() uses the file usage API, which relies on the @@ -908,6 +913,15 @@ function user_update_7018() { } } +/** + * Ensure there is a combined index on {authmap}.uid and {authmap}.module. + */ +function user_update_7019() { + // Check first in case it was already added manually. + if (!db_index_exists('authmap', 'uid_module')) { + db_add_index('authmap', 'uid_module', array('uid', 'module')); + } +} /** * @} End of "addtogroup updates-7.x-extra". */ diff --git a/site/modules/user/user.js b/site/modules/user/user.js index d182066..4cf9816 100644 --- a/site/modules/user/user.js +++ b/site/modules/user/user.js @@ -93,6 +93,8 @@ Drupal.behaviors.password = { * Returns the estimated strength and the relevant output message. */ Drupal.evaluatePasswordStrength = function (password, translate) { + password = $.trim(password); + var weaknesses = 0, strength = 100, msg = []; var hasLowercase = /[a-z]+/.test(password); diff --git a/site/modules/user/user.module b/site/modules/user/user.module index 5124207..12ca280 100644 --- a/site/modules/user/user.module +++ b/site/modules/user/user.module @@ -32,7 +32,7 @@ define('USER_REGISTER_VISITORS', 1); define('USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL', 2); /** - * Implement hook_help(). + * Implements hook_help(). */ function user_help($path, $arg) { global $user; @@ -418,13 +418,11 @@ function user_load_by_name($name) { * * @return * A fully-loaded $user object upon successful save or FALSE if the save failed. - * - * @todo D8: Drop $edit and fix user_save() to be consistent with others. */ function user_save($account, $edit = array(), $category = 'account') { $transaction = db_transaction(); try { - if (!empty($edit['pass'])) { + if (isset($edit['pass']) && strlen(trim($edit['pass'])) > 0) { // Allow alternate password hashing schemes. require_once DRUPAL_ROOT . '/' . variable_get('password_inc', 'includes/password.inc'); $edit['pass'] = user_hash_password(trim($edit['pass'])); @@ -501,12 +499,17 @@ function user_save($account, $edit = array(), $category = 'account') { file_usage_delete($account->original->picture, 'user', 'user', $account->uid); file_delete($account->original->picture); } + // Save the picture object, if it is set. drupal_write_record() expects + // $account->picture to be a FID. + $picture = empty($account->picture) ? NULL : $account->picture; $account->picture = empty($account->picture->fid) ? 0 : $account->picture->fid; // Do not allow 'uid' to be changed. $account->uid = $account->original->uid; // Save changes to the user table. $success = drupal_write_record('users', $account, 'uid'); + // Restore the picture object. + $account->picture = $picture; if ($success === FALSE) { // The query failed - better to abort the save than risk further // data loss. @@ -589,16 +592,16 @@ function user_save($account, $edit = array(), $category = 'account') { user_module_invoke('insert', $edit, $account, $category); module_invoke_all('entity_insert', $account, 'user'); - // Save user roles. - if (count($account->roles) > 1) { + // Save user roles. Skip built-in roles, and ones that were already saved + // to the database during hook calls. + $rids_to_skip = array_merge(array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID), db_query('SELECT rid FROM {users_roles} WHERE uid = :uid', array(':uid' => $account->uid))->fetchCol()); + if ($rids_to_save = array_diff(array_keys($account->roles), $rids_to_skip)) { $query = db_insert('users_roles')->fields(array('uid', 'rid')); - foreach (array_keys($account->roles) as $rid) { - if (!in_array($rid, array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID))) { - $query->values(array( - 'uid' => $account->uid, - 'rid' => $rid, - )); - } + foreach ($rids_to_save as $rid) { + $query->values(array( + 'uid' => $account->uid, + 'rid' => $rid, + )); } $query->execute(); } @@ -717,10 +720,14 @@ function user_password($length = 10) { // Loop the number of times specified by $length. for ($i = 0; $i < $length; $i++) { + do { + // Find a secure random number within the range needed. + $index = ord(drupal_random_bytes(1)); + } while ($index > $len); // Each iteration, pick a random character from the // allowable string and append it to the password: - $pass .= $allowable_characters[mt_rand(0, $len)]; + $pass .= $allowable_characters[$index]; } return $pass; @@ -733,8 +740,9 @@ function user_password($length = 10) { * An array whose keys are the role IDs of interest, such as $user->roles. * * @return - * An array indexed by role ID. Each value is an array whose keys are the - * permission strings for the given role ID. + * If $roles is a non-empty array, an array indexed by role ID is returned. + * Each value is an array whose keys are the permission strings for the given + * role ID. If $roles is empty nothing is returned. */ function user_role_permissions($roles = array()) { $cache = &drupal_static(__FUNCTION__, array()); @@ -781,7 +789,7 @@ function user_role_permissions($roles = array()) { * (optional) The account to check, if not given use currently logged in user. * * @return - * Boolean TRUE if the current user has the requested permission. + * Boolean TRUE if the user has the requested permission. * * All permission checks in Drupal should go through this function. This * way, we guarantee consistent behavior, and ensure that the superuser @@ -838,6 +846,26 @@ function user_is_blocked($name) { ->execute()->fetchObject(); } +/** + * Checks if a user has a role. + * + * @param int $rid + * A role ID. + * + * @param object|null $account + * (optional) A user account. Defaults to the current user. + * + * @return bool + * TRUE if the user has the role, or FALSE if not. + */ +function user_has_role($rid, $account = NULL) { + if (!$account) { + $account = $GLOBALS['user']; + } + + return isset($account->roles[$rid]); +} + /** * Implements hook_permission(). */ @@ -928,6 +956,8 @@ function user_search_access() { */ function user_search_execute($keys = NULL, $conditions = NULL) { $find = array(); + // Escape for LIKE matching. + $keys = db_like($keys); // Replace wildcards with MySQL/PostgreSQL wildcards. $keys = preg_replace('!\*+!', '%', $keys); $query = db_select('users')->extend('PagerDefault'); @@ -937,13 +967,13 @@ function user_search_execute($keys = NULL, $conditions = NULL) { // and they don't need to be restricted to only active users. $query->fields('users', array('mail')); $query->condition(db_or()-> - condition('name', '%' . db_like($keys) . '%', 'LIKE')-> - condition('mail', '%' . db_like($keys) . '%', 'LIKE')); + condition('name', '%' . $keys . '%', 'LIKE')-> + condition('mail', '%' . $keys . '%', 'LIKE')); } else { // Regular users can only search via usernames, and we do not show them // blocked accounts. - $query->condition('name', '%' . db_like($keys) . '%', 'LIKE') + $query->condition('name', '%' . $keys . '%', 'LIKE') ->condition('status', 1); } $uids = $query @@ -1058,13 +1088,16 @@ function user_account_form(&$form, &$form_state) { '#description' => t('To change the current user password, enter the new password in both fields.'), ); // To skip the current password field, the user must have logged in via a - // one-time link and have the token in the URL. - $pass_reset = isset($_SESSION['pass_reset_' . $account->uid]) && isset($_GET['pass-reset-token']) && ($_GET['pass-reset-token'] == $_SESSION['pass_reset_' . $account->uid]); + // one-time link and have the token in the URL. Store this in $form_state + // so it persists even on subsequent Ajax requests. + if (!isset($form_state['user_pass_reset'])) { + $form_state['user_pass_reset'] = isset($_SESSION['pass_reset_' . $account->uid]) && isset($_GET['pass-reset-token']) && ($_GET['pass-reset-token'] == $_SESSION['pass_reset_' . $account->uid]); + } $protected_values = array(); $current_pass_description = ''; // The user may only change their own password without their current // password if they logged in via a one-time login link. - if (!$pass_reset) { + if (!$form_state['user_pass_reset']) { $protected_values['mail'] = $form['account']['mail']['#title']; $protected_values['pass'] = t('Password'); $request_new = l(t('Request new password'), 'user/password', array('attributes' => array('title' => t('Request new password via e-mail.')))); @@ -1130,7 +1163,7 @@ function user_account_form(&$form, &$form_state) { $form['account']['roles'] = array( '#type' => 'checkboxes', '#title' => t('Roles'), - '#default_value' => (!$register && isset($account->roles) ? array_keys($account->roles) : array()), + '#default_value' => (!$register && !empty($account->roles) ? array_keys(array_filter($account->roles)) : array()), '#options' => $roles, '#access' => $roles && user_access('administer permissions'), DRUPAL_AUTHENTICATED_RID => $checkbox_authenticated, @@ -1200,7 +1233,7 @@ function user_validate_current_pass(&$form, &$form_state) { // that prevent them from being empty if they are changed. if ((strlen(trim($form_state['values'][$key])) > 0) && ($form_state['values'][$key] != $account->$key)) { require_once DRUPAL_ROOT . '/' . variable_get('password_inc', 'includes/password.inc'); - $current_pass_failed = empty($form_state['values']['current_pass']) || !user_check_password($form_state['values']['current_pass'], $account); + $current_pass_failed = strlen(trim($form_state['values']['current_pass'])) == 0 || !user_check_password($form_state['values']['current_pass'], $account); if ($current_pass_failed) { form_set_error('current_pass', t("Your current password is missing or incorrect; it's required to change the %name.", array('%name' => $name))); form_set_error($key); @@ -1276,10 +1309,12 @@ function user_user_presave(&$edit, $account, $category) { elseif (!empty($edit['picture_delete'])) { $edit['picture'] = NULL; } - // Prepare user roles. - if (isset($edit['roles'])) { - $edit['roles'] = array_filter($edit['roles']); - } + } + + // Filter out roles with empty values to avoid granting extra roles when + // processing custom form submissions. + if (isset($edit['roles'])) { + $edit['roles'] = array_filter($edit['roles']); } // Move account cancellation information into $user->data. @@ -1721,21 +1756,23 @@ function user_menu() { $items['admin/people/create'] = array( 'title' => 'Add user', + 'page callback' => 'user_admin', 'page arguments' => array('create'), 'access arguments' => array('administer users'), 'type' => MENU_LOCAL_ACTION, + 'file' => 'user.admin.inc', ); // Administration pages. $items['admin/config/people'] = array( - 'title' => 'People', - 'description' => 'Configure user accounts.', - 'position' => 'left', - 'weight' => -20, - 'page callback' => 'system_admin_menu_block_page', - 'access arguments' => array('access administration pages'), - 'file' => 'system.admin.inc', - 'file path' => drupal_get_path('module', 'system'), + 'title' => 'People', + 'description' => 'Configure user accounts.', + 'position' => 'left', + 'weight' => -20, + 'page callback' => 'system_admin_menu_block_page', + 'access arguments' => array('access administration pages'), + 'file' => 'system.admin.inc', + 'file path' => drupal_get_path('module', 'system'), ); $items['admin/config/people/accounts'] = array( 'title' => 'Account settings', @@ -1881,13 +1918,13 @@ function user_menu_link_alter(&$link) { // for authenticated users. Authenticated users should see "My account", but // anonymous users should not see it at all. Therefore, invoke // user_translated_menu_link_alter() to conditionally hide the link. - if ($link['link_path'] == 'user' && $link['module'] == 'system') { + if ($link['link_path'] == 'user' && isset($link['module']) && $link['module'] == 'system') { $link['options']['alter'] = TRUE; } // Force the Logout link to appear on the top-level of 'user-menu' menu by // default (i.e., unless it has been customized). - if ($link['link_path'] == 'user/logout' && $link['module'] == 'system' && empty($link['customized'])) { + if ($link['link_path'] == 'user/logout' && isset($link['module']) && $link['module'] == 'system' && empty($link['customized'])) { $link['plid'] = 0; } } @@ -2118,7 +2155,7 @@ function user_login_default_validators() { * A FAPI validate handler. Sets an error if supplied username has been blocked. */ function user_login_name_validate($form, &$form_state) { - if (isset($form_state['values']['name']) && user_is_blocked($form_state['values']['name'])) { + if (!empty($form_state['values']['name']) && user_is_blocked($form_state['values']['name'])) { // Blocked in user administration. form_set_error('name', t('The username %name has not been activated or is blocked.', array('%name' => $form_state['values']['name']))); } @@ -2131,7 +2168,7 @@ function user_login_name_validate($form, &$form_state) { */ function user_login_authenticate_validate($form, &$form_state) { $password = trim($form_state['values']['pass']); - if (!empty($form_state['values']['name']) && !empty($password)) { + if (!empty($form_state['values']['name']) && strlen(trim($password)) > 0) { // Do not allow any login from the current user's IP if the limit has been // reached. Default is 50 failed attempts allowed in one hour. This is // independent of the per-user limit to catch attempts from one IP to log @@ -2195,7 +2232,11 @@ function user_login_final_validate($form, &$form_state) { } } else { - form_set_error('name', t('Sorry, unrecognized username or password. Have you forgotten your password?', array('@password' => url('user/password', array('query' => array('name' => $form_state['values']['name'])))))); + // Use $form_state['input']['name'] here to guarantee that we send + // exactly what the user typed in. $form_state['values']['name'] may have + // been modified by validation handlers that ran earlier than this one. + $query = isset($form_state['input']['name']) ? array('name' => $form_state['input']['name']) : array(); + form_set_error('name', t('Sorry, unrecognized username or password. Have you forgotten your password?', array('@password' => url('user/password', array('query' => $query))))); watchdog('user', 'Login attempt failed for %user.', array('%user' => $form_state['values']['name'])); } } @@ -2218,7 +2259,7 @@ function user_login_final_validate($form, &$form_state) { */ function user_authenticate($name, $password) { $uid = FALSE; - if (!empty($name) && !empty($password)) { + if (!empty($name) && strlen(trim($password)) > 0) { $account = user_load_by_name($name); if ($account) { // Allow alternate password hashing schemes. @@ -2314,7 +2355,10 @@ function user_external_login_register($name, $module) { * Generates a unique URL for a user to login and reset their password. * * @param object $account - * An object containing the user account. + * An object containing the user account, which must contain at least the + * following properties: + * - uid: The user ID number. + * - login: The UNIX timestamp of the user's last login. * * @return * A unique URL that provides a one-time log in for the user, from which @@ -2322,7 +2366,7 @@ function user_external_login_register($name, $module) { */ function user_pass_reset_url($account) { $timestamp = REQUEST_TIME; - return url("user/reset/$account->uid/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login), array('absolute' => TRUE)); + return url("user/reset/$account->uid/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid), array('absolute' => TRUE)); } /** @@ -2331,9 +2375,9 @@ function user_pass_reset_url($account) { * @param object $account * The user account object, which must contain at least the following * properties: - * - uid: The user uid number. + * - uid: The user ID number. * - pass: The hashed user password string. - * - login: The user login name. + * - login: The UNIX timestamp of the user's last login. * * @return * A unique URL that may be used to confirm the cancellation of the user @@ -2344,7 +2388,7 @@ function user_pass_reset_url($account) { */ function user_cancel_url($account) { $timestamp = REQUEST_TIME; - return url("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login), array('absolute' => TRUE)); + return url("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid), array('absolute' => TRUE)); } /** @@ -2355,21 +2399,42 @@ function user_cancel_url($account) { * order to validate the URL, the same hash can be generated again, from the * same information, and compared to the hash value from the URL. The URL * normally contains both the time stamp and the numeric user ID. The login - * name and hashed password are retrieved from the database as necessary. For a - * usage example, see user_cancel_url() and user_cancel_confirm(). + * timestamp and hashed password are retrieved from the database as necessary. + * For a usage example, see user_cancel_url() and user_cancel_confirm(). * - * @param $password + * @param string $password * The hashed user account password value. - * @param $timestamp - * A unix timestamp. - * @param $login - * The user account login name. + * @param int $timestamp + * A UNIX timestamp, typically REQUEST_TIME. + * @param int $login + * The UNIX timestamp of the user's last login. + * @param int $uid + * The user ID of the user account. * * @return * A string that is safe for use in URLs and SQL statements. */ -function user_pass_rehash($password, $timestamp, $login) { - return drupal_hmac_base64($timestamp . $login, drupal_get_hash_salt() . $password); +function user_pass_rehash($password, $timestamp, $login, $uid) { + // Backwards compatibility: Try to determine a $uid if one was not passed. + // (Since $uid is a required parameter to this function, a PHP warning will + // be generated if it's not provided, which is an indication that the calling + // code should be updated. But the code below will try to generate a correct + // hash in the meantime.) + if (!isset($uid)) { + $uids = db_query_range('SELECT uid FROM {users} WHERE pass = :password AND login = :login AND uid > 0', 0, 2, array(':password' => $password, ':login' => $login))->fetchCol(); + // If exactly one user account matches the provided password and login + // timestamp, proceed with that $uid. + if (count($uids) == 1) { + $uid = reset($uids); + } + // Otherwise there is no safe hash to return, so return a random string + // that will never be treated as a valid token. + else { + return drupal_random_key(); + } + } + + return drupal_hmac_base64($timestamp . $login . $uid, drupal_get_hash_salt() . $password); } /** @@ -2434,7 +2499,9 @@ function user_cancel($edit, $uid, $method) { } /** - * Last batch processing step for cancelling a user account. + * Implements callback_batch_operation(). + * + * Last step for cancelling a user account. * * Since batch and session API require a valid user account, the actual * cancellation of a user account needs to happen last. @@ -2482,6 +2549,8 @@ function _user_cancel($edit, $account, $method) { } /** + * Implements callback_batch_finished(). + * * Finished batch processing callback for cancelling a user account. * * @see user_cancel() @@ -2625,12 +2694,7 @@ function user_build_content($account, $view_mode = 'full', $langcode = NULL) { $account->content = array(); // Allow modules to change the view mode. - $context = array( - 'entity_type' => 'user', - 'entity' => $account, - 'langcode' => $langcode, - ); - drupal_alter('entity_view_mode', $view_mode, $context); + $view_mode = key(entity_view_mode_prepare('user', array($account->uid => $account), $view_mode, $langcode)); // Build fields content. field_attach_prepare_view('user', array($account->uid => $account), $view_mode, $langcode); @@ -2834,7 +2898,7 @@ Your account on [site:name] has been canceled. * An associative array of token replacement values. If the 'user' element * exists, it must contain a user account object with the following * properties: - * - login: The account login name. + * - login: The UNIX timestamp of the user's last login. * - pass: The hashed account login password. * @param $options * Unused parameter required by the token_replace() function. @@ -2990,6 +3054,11 @@ function user_role_delete($role) { $role = user_role_load_by_name($role); } + // If this is the administrator role, delete the user_admin_role variable. + if ($role->rid == variable_get('user_admin_role')) { + variable_del('user_admin_role'); + } + db_delete('role') ->condition('rid', $role->rid) ->execute(); @@ -3605,12 +3674,7 @@ function user_form_process_password_confirm($element) { ); $element['#attached']['js'][] = drupal_get_path('module', 'user') . '/user.js'; - // Ensure settings are only added once per page. - static $already_added = FALSE; - if (!$already_added) { - $already_added = TRUE; - $element['#attached']['js'][] = array('data' => $js_settings, 'type' => 'setting'); - } + $element['#attached']['js'][] = array('data' => $js_settings, 'type' => 'setting'); return $element; } @@ -3670,7 +3734,14 @@ function user_action_info() { } /** - * Blocks the current user. + * Blocks a specific user or the current user, if one is not specified. + * + * @param $entity + * (optional) An entity object; if it is provided and it has a uid property, + * the user with that ID is blocked. + * @param $context + * (optional) An associative array; if no user ID is found in $entity, the + * 'uid' element of this array determines the user to block. * * @ingroup actions */ @@ -3758,8 +3829,8 @@ function user_register_form($form, &$form_state) { // inside the submit function interferes with form processing and breaks // hook_form_alter(). $form['administer_users'] = array( - '#type' => 'value', - '#value' => $admin, + '#type' => 'value', + '#value' => $admin, ); // If we aren't admin but already logged on, go to the user page instead. diff --git a/site/modules/user/user.pages.inc b/site/modules/user/user.pages.inc index 4cdbc40..2a1b291 100644 --- a/site/modules/user/user.pages.inc +++ b/site/modules/user/user.pages.inc @@ -44,6 +44,12 @@ function user_pass() { $form['name']['#value'] = $user->mail; $form['mail'] = array( '#prefix' => '

                                ', + // As of https://www.drupal.org/node/889772 the user no longer must log + // out (if they are still logged in when using the password reset link, + // they will be logged out automatically then), but this text is kept as + // is to avoid breaking translations as well as to encourage the user to + // log out manually at a time of their own choosing (when it will not + // interrupt anything else they may have been in the middle of doing). '#markup' => t('Password reset instructions will be mailed to %email. You must log out to use the password reset link in the e-mail.', array('%email' => $user->mail)), '#suffix' => '

                                ', ); @@ -54,6 +60,11 @@ function user_pass() { return $form; } +/** + * Form validation handler for user_pass(). + * + * @see user_pass_submit() + */ function user_pass_validate($form, &$form_state) { $name = trim($form_state['values']['name']); // Try to load by email. @@ -72,6 +83,11 @@ function user_pass_validate($form, &$form_state) { } } +/** + * Form submission handler for user_pass(). + * + * @see user_pass_validate() + */ function user_pass_submit($form, &$form_state) { global $language; @@ -96,22 +112,33 @@ function user_pass_reset($form, &$form_state, $uid, $timestamp, $hashed_pass, $a // When processing the one-time login link, we have to make sure that a user // isn't already logged in. if ($user->uid) { - // The existing user is already logged in. + // The existing user is already logged in. Log them out and reload the + // current page so the password reset process can continue. if ($user->uid == $uid) { - drupal_set_message(t('You are logged in as %user. Change your password.', array('%user' => $user->name, '!user_edit' => url("user/$user->uid/edit")))); + // Preserve the current destination (if any) and ensure the redirect goes + // back to the current page; any custom destination set in + // hook_user_logout() and intended for regular logouts would not be + // appropriate here. + $destination = array(); + if (isset($_GET['destination'])) { + $destination = drupal_get_destination(); + } + user_logout_current_user(); + unset($_GET['destination']); + drupal_goto(current_path(), array('query' => drupal_get_query_parameters() + $destination)); } // A different user is already logged in on the computer. else { $reset_link_account = user_load($uid); if (!empty($reset_link_account)) { drupal_set_message(t('Another user (%other_user) is already logged into the site on this computer, but you tried to use a one-time link for user %resetting_user. Please logout and try using the link again.', - array('%other_user' => $user->name, '%resetting_user' => $reset_link_account->name, '!logout' => url('user/logout')))); + array('%other_user' => $user->name, '%resetting_user' => $reset_link_account->name, '!logout' => url('user/logout'))), 'warning'); } else { // Invalid one-time link specifies an unknown user. - drupal_set_message(t('The one-time login link you clicked is invalid.')); + drupal_set_message(t('The one-time login link you clicked is invalid.'), 'error'); } + drupal_goto(); } - drupal_goto(); } else { // Time out, in seconds, until login URL expires. Defaults to 24 hours = @@ -123,10 +150,10 @@ function user_pass_reset($form, &$form_state, $uid, $timestamp, $hashed_pass, $a if ($timestamp <= $current && $account = reset($users)) { // No time out for first time login. if ($account->login && $current - $timestamp > $timeout) { - drupal_set_message(t('You have tried to use a one-time login link that has expired. Please request a new one using the form below.')); + drupal_set_message(t('You have tried to use a one-time login link that has expired. Please request a new one using the form below.'), 'error'); drupal_goto('user/password'); } - elseif ($account->uid && $timestamp >= $account->login && $timestamp <= $current && $hashed_pass == user_pass_rehash($account->pass, $timestamp, $account->login)) { + elseif ($account->uid && $timestamp >= $account->login && $timestamp <= $current && $hashed_pass == user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)) { // First stage is a confirmation form, then login if ($action == 'login') { // Set the new user. @@ -137,7 +164,7 @@ function user_pass_reset($form, &$form_state, $uid, $timestamp, $hashed_pass, $a watchdog('user', 'User %name used one-time login link at time %timestamp.', array('%name' => $account->name, '%timestamp' => $timestamp)); drupal_set_message(t('You have just used your one-time login link. It is no longer necessary to use this link to log in. Please change your password.')); // Let the user's password be changed without the current password check. - $token = drupal_hash_base64(drupal_random_bytes(55)); + $token = drupal_random_key(); $_SESSION['pass_reset_' . $user->uid] = $token; drupal_goto('user/' . $user->uid . '/edit', array('query' => array('pass-reset-token' => $token))); } @@ -151,7 +178,7 @@ function user_pass_reset($form, &$form_state, $uid, $timestamp, $hashed_pass, $a } } else { - drupal_set_message(t('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.')); + drupal_set_message(t('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.'), 'error'); drupal_goto('user/password'); } } @@ -159,6 +186,7 @@ function user_pass_reset($form, &$form_state, $uid, $timestamp, $hashed_pass, $a // Deny access, no more clues. // Everything will be in the watchdog's URL for the administrator to check. drupal_access_denied(); + drupal_exit(); } } } @@ -167,6 +195,14 @@ function user_pass_reset($form, &$form_state, $uid, $timestamp, $hashed_pass, $a * Menu callback; logs the current user out, and redirects to the home page. */ function user_logout() { + user_logout_current_user(); + drupal_goto(); +} + +/** + * Logs the current user out. + */ +function user_logout_current_user() { global $user; watchdog('user', 'Session closed for %name.', array('%name' => $user->name)); @@ -175,15 +211,16 @@ function user_logout() { // Destroy the current session, and reset $user to the anonymous user. session_destroy(); - - drupal_goto(); } /** * Process variables for user-profile.tpl.php. * - * The $variables array contains the following arguments: - * - $account + * @param array $variables + * An associative array containing: + * - elements: An associative array containing the user information and any + * fields attached to the user. Properties used: + * - #account: The user account of the profile being viewed. * * @see user-profile.tpl.php */ @@ -290,14 +327,18 @@ function user_profile_form($form, &$form_state, $account, $category = 'account') } /** - * Validation function for the user account and profile editing form. + * Form validation handler for user_profile_form(). + * + * @see user_profile_form_submit() */ function user_profile_form_validate($form, &$form_state) { entity_form_field_validate('user', $form, $form_state); } /** - * Submit function for the user account and profile editing form. + * Form submission handler for user_profile_form(). + * + * @see user_profile_form_validate() */ function user_profile_form_submit($form, &$form_state) { $account = $form_state['user']; @@ -355,7 +396,6 @@ function user_cancel_confirm_form($form, &$form_state, $account) { $form['_account'] = array('#type' => 'value', '#value' => $account); // Display account cancellation method selection, if allowed. - $default_method = variable_get('user_cancel_method', 'user_cancel_block'); $admin_access = user_access('administer users'); $can_select_method = $admin_access || user_access('select account cancellation method'); $form['user_cancel_method'] = array( @@ -519,7 +559,7 @@ function user_cancel_confirm($account, $timestamp = 0, $hashed_pass = '') { // Basic validation of arguments. if (isset($account->data['user_cancel_method']) && !empty($timestamp) && !empty($hashed_pass)) { // Validate expiration and hashed password/login. - if ($timestamp <= $current && $current - $timestamp < $timeout && $account->uid && $timestamp >= $account->login && $hashed_pass == user_pass_rehash($account->pass, $timestamp, $account->login)) { + if ($timestamp <= $current && $current - $timestamp < $timeout && $account->uid && $timestamp >= $account->login && $hashed_pass == user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)) { $edit = array( 'user_cancel_notify' => isset($account->data['user_cancel_notify']) ? $account->data['user_cancel_notify'] : variable_get('user_mail_status_canceled_notify', FALSE), ); @@ -530,18 +570,24 @@ function user_cancel_confirm($account, $timestamp = 0, $hashed_pass = '') { batch_process(''); } else { - drupal_set_message(t('You have tried to use an account cancellation link that has expired. Please request a new one using the form below.')); + drupal_set_message(t('You have tried to use an account cancellation link that has expired. Please request a new one using the form below.'), 'error'); drupal_goto("user/$account->uid/cancel"); } } - drupal_access_denied(); + return MENU_ACCESS_DENIED; } /** - * Access callback for path /user. + * Page callback: Displays the user page. * * Displays user profile if user is logged in, or login form for anonymous * users. + * + * @return + * A render array for either a user profile or a login form. + * + * @see user_view_page() + * @see user_login() */ function user_page() { global $user; diff --git a/site/modules/user/user.test b/site/modules/user/user.test index e2086d4..0875e0a 100644 --- a/site/modules/user/user.test +++ b/site/modules/user/user.test @@ -465,6 +465,19 @@ class UserPasswordResetTestCase extends DrupalWebTestCase { ); } + /** + * Retrieves password reset email and extracts the login link. + */ + public function getResetURL() { + // Assume the most recent email. + $_emails = $this->drupalGetMails(); + $email = end($_emails); + $urls = array(); + preg_match('#.+user/reset/.+#', $email['body'], $urls); + + return $urls[0]; + } + /** * Tests password reset functionality. */ @@ -478,6 +491,77 @@ class UserPasswordResetTestCase extends DrupalWebTestCase { $this->drupalPost('user/password', $edit, t('E-mail new password')); // Confirm the password reset. $this->assertText(t('Further instructions have been sent to your e-mail address.'), 'Password reset instructions mailed message displayed.'); + + // Create an image field to enable an Ajax request on the user profile page. + $field = array( + 'field_name' => 'field_avatar', + 'type' => 'image', + 'settings' => array(), + 'cardinality' => 1, + ); + field_create_field($field); + + $instance = array( + 'field_name' => $field['field_name'], + 'entity_type' => 'user', + 'label' => 'Avatar', + 'bundle' => 'user', + 'required' => FALSE, + 'settings' => array(), + 'widget' => array( + 'type' => 'image_image', + 'settings' => array(), + ), + ); + field_create_instance($instance); + + $resetURL = $this->getResetURL(); + $this->drupalGet($resetURL); + + // Check successful login. + $this->drupalPost(NULL, NULL, t('Log in')); + + // Make sure the Ajax request from uploading a file does not invalidate the + // reset token. + $image = current($this->drupalGetTestFiles('image')); + $edit = array( + 'files[field_avatar_und_0]' => drupal_realpath($image->uri), + ); + $this->drupalPostAJAX(NULL, $edit, 'field_avatar_und_0_upload_button'); + + // Change the forgotten password. + $password = user_password(); + $edit = array('pass[pass1]' => $password, 'pass[pass2]' => $password); + $this->drupalPost(NULL, $edit, t('Save')); + $this->assertText(t('The changes have been saved.'), 'Forgotten password changed.'); + } + + /** + * Test user password reset while logged in. + */ + function testUserPasswordResetLoggedIn() { + $account = $this->drupalCreateUser(); + $this->drupalLogin($account); + // Make sure the test account has a valid password. + user_save($account, array('pass' => user_password())); + + // Generate one time login link. + $reset_url = user_pass_reset_url($account); + $this->drupalGet($reset_url); + + $this->assertText('Reset password'); + $this->drupalPost(NULL, NULL, t('Log in')); + + $this->assertText('You have just used your one-time login link. It is no longer necessary to use this link to log in. Please change your password.'); + + $pass = user_password(); + $edit = array( + 'pass[pass1]' => $pass, + 'pass[pass2]' => $pass, + ); + $this->drupalPost(NULL, $edit, t('Save')); + + $this->assertText('The changes have been saved.'); } /** @@ -498,7 +582,7 @@ class UserPasswordResetTestCase extends DrupalWebTestCase { // To attempt an expired password reset, create a password reset link as if // its request time was 60 seconds older than the allowed limit of timeout. $bogus_timestamp = REQUEST_TIME - variable_get('user_password_reset_timeout', 86400) - 60; - $this->drupalGet("user/reset/$account->uid/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login)); + $this->drupalGet("user/reset/$account->uid/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login, $account->uid)); $this->assertText(t('You have tried to use a one-time login link that has expired. Please request a new one using the form below.'), 'Expired password reset request rejected.'); } @@ -519,6 +603,74 @@ class UserPasswordResetTestCase extends DrupalWebTestCase { $this->assertFieldByName('name', $edit['name'], 'User name found.'); } + /** + * Make sure that users cannot forge password reset URLs of other users. + */ + function testResetImpersonation() { + // Make sure user 1 has a valid password, so it does not interfere with the + // test user accounts that are created below. + $account = user_load(1); + user_save($account, array('pass' => user_password())); + + // Create two identical user accounts except for the user name. They must + // have the same empty password, so we can't use $this->drupalCreateUser(). + $edit = array(); + $edit['name'] = $this->randomName(); + $edit['mail'] = $edit['name'] . '@example.com'; + $edit['status'] = 1; + + $user1 = user_save(drupal_anonymous_user(), $edit); + + $edit['name'] = $this->randomName(); + $user2 = user_save(drupal_anonymous_user(), $edit); + + // The password reset URL must not be valid for the second user when only + // the user ID is changed in the URL. + $reset_url = user_pass_reset_url($user1); + $attack_reset_url = str_replace("user/reset/$user1->uid", "user/reset/$user2->uid", $reset_url); + $this->drupalGet($attack_reset_url); + $this->assertNoText($user2->name, 'The invalid password reset page does not show the user name.'); + $this->assertUrl('user/password', array(), 'The user is redirected to the password reset request page.'); + $this->assertText('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.'); + + // When legacy code calls user_pass_rehash() without providing the $uid + // parameter, neither password reset URL should be valid since it is + // impossible for the system to determine which user account the token was + // intended for. + $timestamp = REQUEST_TIME; + // Pass an explicit NULL for the $uid parameter of user_pass_rehash() + // rather than not passing it at all, to avoid triggering PHP warnings in + // the test. + $reset_url_token = user_pass_rehash($user1->pass, $timestamp, $user1->login, NULL); + $reset_url = url("user/reset/$user1->uid/$timestamp/$reset_url_token", array('absolute' => TRUE)); + $this->drupalGet($reset_url); + $this->assertNoText($user1->name, 'The invalid password reset page does not show the user name.'); + $this->assertUrl('user/password', array(), 'The user is redirected to the password reset request page.'); + $this->assertText('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.'); + $attack_reset_url = str_replace("user/reset/$user1->uid", "user/reset/$user2->uid", $reset_url); + $this->drupalGet($attack_reset_url); + $this->assertNoText($user2->name, 'The invalid password reset page does not show the user name.'); + $this->assertUrl('user/password', array(), 'The user is redirected to the password reset request page.'); + $this->assertText('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.'); + + // To verify that user_pass_rehash() never returns a valid result in the + // above situation (even if legacy code also called it to attempt to + // validate the token, rather than just to generate the URL), check that a + // second call with the same parameters produces a different result. + $new_reset_url_token = user_pass_rehash($user1->pass, $timestamp, $user1->login, NULL); + $this->assertNotEqual($reset_url_token, $new_reset_url_token); + + // However, when the duplicate account is removed, the password reset URL + // should be valid. + user_delete($user2->uid); + $reset_url_token = user_pass_rehash($user1->pass, $timestamp, $user1->login, NULL); + $reset_url = url("user/reset/$user1->uid/$timestamp/$reset_url_token", array('absolute' => TRUE)); + $this->drupalGet($reset_url); + $this->assertText($user1->name, 'The valid password reset page shows the user name.'); + $this->assertUrl($reset_url, array(), 'The user remains on the password reset login page.'); + $this->assertNoText('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.'); + } + } /** @@ -558,7 +710,7 @@ class UserCancelTestCase extends DrupalWebTestCase { // Attempt bogus account cancellation request confirmation. $timestamp = $account->login; - $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login)); + $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)); $this->assertResponse(403, 'Bogus cancelling request rejected.'); $account = user_load($account->uid); $this->assertTrue($account->status == 1, 'User account was not canceled.'); @@ -631,14 +783,14 @@ class UserCancelTestCase extends DrupalWebTestCase { // Attempt bogus account cancellation request confirmation. $bogus_timestamp = $timestamp + 60; - $this->drupalGet("user/$account->uid/cancel/confirm/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login)); + $this->drupalGet("user/$account->uid/cancel/confirm/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login, $account->uid)); $this->assertText(t('You have tried to use an account cancellation link that has expired. Please request a new one using the form below.'), 'Bogus cancelling request rejected.'); $account = user_load($account->uid); $this->assertTrue($account->status == 1, 'User account was not canceled.'); // Attempt expired account cancellation request confirmation. $bogus_timestamp = $timestamp - 86400 - 60; - $this->drupalGet("user/$account->uid/cancel/confirm/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login)); + $this->drupalGet("user/$account->uid/cancel/confirm/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login, $account->uid)); $this->assertText(t('You have tried to use an account cancellation link that has expired. Please request a new one using the form below.'), 'Expired cancel account request rejected.'); $accounts = user_load_multiple(array($account->uid), array('status' => 1)); $this->assertTrue(reset($accounts), 'User account was not canceled.'); @@ -675,7 +827,7 @@ class UserCancelTestCase extends DrupalWebTestCase { $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.'); // Confirm account cancellation request. - $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login)); + $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)); $account = user_load($account->uid, TRUE); $this->assertTrue($account->status == 0, 'User has been blocked.'); @@ -713,7 +865,7 @@ class UserCancelTestCase extends DrupalWebTestCase { $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.'); // Confirm account cancellation request. - $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login)); + $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)); $account = user_load($account->uid, TRUE); $this->assertTrue($account->status == 0, 'User has been blocked.'); @@ -763,7 +915,7 @@ class UserCancelTestCase extends DrupalWebTestCase { $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.'); // Confirm account cancellation request. - $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login)); + $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)); $this->assertFalse(user_load($account->uid, TRUE), 'User is not found in the database.'); // Confirm that user's content has been attributed to anonymous user. @@ -827,7 +979,7 @@ class UserCancelTestCase extends DrupalWebTestCase { $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.'); // Confirm account cancellation request. - $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login)); + $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)); $this->assertFalse(user_load($account->uid, TRUE), 'User is not found in the database.'); // Confirm that user's content has been deleted. @@ -1127,6 +1279,17 @@ class UserPictureTestCase extends DrupalWebTestCase { $pic_path2 = $this->saveUserPicture($image); $this->assertNotEqual($pic_path, $pic_path2, 'Filename of second picture is different.'); + + // Check if user picture has a valid file ID after saving the user. + $account = user_load($this->user->uid, TRUE); + $this->assertTrue(is_object($account->picture), 'User picture object is valid after user load.'); + $this->assertNotNull($account->picture->fid, 'User picture object has a FID after user load.'); + $this->assertTrue(is_file($account->picture->uri), 'File is located in proper directory after user load.'); + user_save($account); + // Verify that the user save does not destroy the user picture object. + $this->assertTrue(is_object($account->picture), 'User picture object is valid after user save.'); + $this->assertNotNull($account->picture->fid, 'User picture object has a FID after user save.'); + $this->assertTrue(is_file($account->picture->uri), 'File is located in proper directory after user save.'); } } @@ -1422,7 +1585,13 @@ class UserTimeZoneFunctionalTest extends DrupalWebTestCase { // Setup date/time settings for Los Angeles time. variable_set('date_default_timezone', 'America/Los_Angeles'); variable_set('configurable_timezones', 1); - variable_set('date_format_medium', 'Y-m-d H:i T'); + + // Override the 'medium' date format, which is the default for node + // creation time. Since we are testing time zones with Daylight Saving + // Time, and need to future proof against changes to the zoneinfo database, + // we choose the 'I' format placeholder instead of a human-readable zone + // name. With 'I', a 1 means the date is in DST, and 0 if not. + variable_set('date_format_medium', 'Y-m-d H:i I'); // Create a user account and login. $web_user = $this->drupalCreateUser(); @@ -1440,11 +1609,11 @@ class UserTimeZoneFunctionalTest extends DrupalWebTestCase { // Confirm date format and time zone. $this->drupalGet("node/$node1->nid"); - $this->assertText('2007-03-09 21:00 PST', 'Date should be PST.'); + $this->assertText('2007-03-09 21:00 0', 'Date should be PST.'); $this->drupalGet("node/$node2->nid"); - $this->assertText('2007-03-11 01:00 PST', 'Date should be PST.'); + $this->assertText('2007-03-11 01:00 0', 'Date should be PST.'); $this->drupalGet("node/$node3->nid"); - $this->assertText('2007-03-20 21:00 PDT', 'Date should be PDT.'); + $this->assertText('2007-03-20 21:00 1', 'Date should be PDT.'); // Change user time zone to Santiago time. $edit = array(); @@ -1455,11 +1624,11 @@ class UserTimeZoneFunctionalTest extends DrupalWebTestCase { // Confirm date format and time zone. $this->drupalGet("node/$node1->nid"); - $this->assertText('2007-03-10 02:00 CLST', 'Date should be Chile summer time; five hours ahead of PST.'); + $this->assertText('2007-03-10 02:00 1', 'Date should be Chile summer time; five hours ahead of PST.'); $this->drupalGet("node/$node2->nid"); - $this->assertText('2007-03-11 05:00 CLT', 'Date should be Chile time; four hours ahead of PST'); + $this->assertText('2007-03-11 05:00 0', 'Date should be Chile time; four hours ahead of PST'); $this->drupalGet("node/$node3->nid"); - $this->assertText('2007-03-21 00:00 CLT', 'Date should be Chile time; three hours ahead of PDT.'); + $this->assertText('2007-03-21 00:00 0', 'Date should be Chile time; three hours ahead of PDT.'); } } @@ -1770,6 +1939,19 @@ class UserCreateTestCase extends DrupalWebTestCase { $this->drupalGet('admin/people'); $this->assertText($edit['name'], 'User found in list of users'); } + + // Test that the password '0' is considered a password. + $name = $this->randomName(); + $edit = array( + 'name' => $name, + 'mail' => $name . '@example.com', + 'pass[pass1]' => 0, + 'pass[pass2]' => 0, + 'notify' => FALSE, + ); + $this->drupalPost('admin/people/create', $edit, t('Create new account')); + $this->assertText(t('Created a new user account for @name. No e-mail has been sent.', array('@name' => $edit['name'])), 'User created with password 0'); + $this->assertNoText('Password field is required'); } } @@ -1847,6 +2029,74 @@ class UserEditTestCase extends DrupalWebTestCase { $this->drupalLogin($user1); $this->drupalLogout(); } + + /** + * Tests setting the password to "0". + */ + public function testUserWith0Password() { + $admin = $this->drupalCreateUser(array('administer users')); + $this->drupalLogin($admin); + // Create a regular user. + $user1 = $this->drupalCreateUser(array()); + + $edit = array('pass[pass1]' => '0', 'pass[pass2]' => '0'); + $this->drupalPost("user/" . $user1->uid . "/edit", $edit, t('Save')); + $this->assertRaw(t("The changes have been saved.")); + + $this->drupalLogout(); + $user1->pass_raw = '0'; + $this->drupalLogin($user1); + $this->drupalLogout(); + } +} + +/** + * Tests editing a user account with and without a form rebuild. + */ +class UserEditRebuildTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'User edit with form rebuild', + 'description' => 'Test user edit page when a form rebuild is triggered.', + 'group' => 'User', + ); + } + + function setUp() { + parent::setUp('user_form_test'); + } + + /** + * Test user edit page when the form is set to rebuild. + */ + function testUserEditFormRebuild() { + $user1 = $this->drupalCreateUser(array('change own username')); + $this->drupalLogin($user1); + + $roles = array_keys($user1->roles); + // Save the user form twice. + $edit = array(); + $edit['current_pass'] = $user1->pass_raw; + $this->drupalPost("user/$user1->uid/edit", $edit, t('Save')); + $this->assertRaw(t("The changes have been saved.")); + $this->drupalPost(NULL, $edit, t('Save')); + $this->assertRaw(t("The changes have been saved.")); + $saved_user1 = entity_load_unchanged('user', $user1->uid); + $this->assertEqual(count($roles), count($saved_user1->roles), 'Count of user roles in database matches original count.'); + $diff = array_diff(array_keys($saved_user1->roles), $roles); + $this->assertTrue(empty($diff), format_string('User roles in database match original: @roles', array('@roles' => implode(', ', $saved_user1->roles)))); + // Set variable that causes the form to be rebuilt in user_form_test.module. + variable_set('user_form_test_user_profile_form_rebuild', TRUE); + $this->drupalPost("user/$user1->uid/edit", $edit, t('Save')); + $this->assertRaw(t("The changes have been saved.")); + $this->drupalPost(NULL, $edit, t('Save')); + $this->assertRaw(t("The changes have been saved.")); + $saved_user1 = entity_load_unchanged('user', $user1->uid); + $this->assertEqual(count($roles), count($saved_user1->roles), 'Count of user roles in database matches original count.'); + $diff = array_diff(array_keys($saved_user1->roles), $roles); + $this->assertTrue(empty($diff), format_string('User roles in database match original: @roles', array('@roles' => implode(', ', $saved_user1->roles)))); + } } /** @@ -2016,12 +2266,16 @@ class UserRoleAdminTestCase extends DrupalWebTestCase { $this->assertFalse(user_role_load_by_name($old_name), 'The role can no longer be retrieved from the database using its old name.'); $this->assertTrue(is_object(user_role_load_by_name($role_name)), 'The role can be retrieved from the database using its new name.'); - // Test deleting a role. + // Test deleting the default administrator role. + $role_name = 'administrator'; + $role = user_role_load_by_name($role_name); $this->drupalPost("admin/people/permissions/roles/edit/{$role->rid}", NULL, t('Delete role')); $this->drupalPost(NULL, NULL, t('Delete')); $this->assertText(t('The role has been deleted.'), 'The role has been deleted'); $this->assertNoLinkByHref("admin/people/permissions/roles/edit/{$role->rid}", 'Role edit link removed.'); $this->assertFalse(user_role_load_by_name($role_name), 'A deleted role can no longer be loaded.'); + // Make sure this role is no longer configured as the administrator role. + $this->assertNull(variable_get('user_admin_role'), 'The administrator role is no longer configured as the administrator role.'); // Make sure that the system-defined roles cannot be edited via the user // interface. @@ -2147,6 +2401,20 @@ class UserUserSearchTestCase extends DrupalWebTestCase { $this->drupalPost('search/user/', $edit, t('Search')); $this->assertText($keys); + // Verify that wildcard search works. + $keys = $user1->name; + $keys = substr($keys, 0, 2) . '*' . substr($keys, 4, 2); + $edit = array('keys' => $keys); + $this->drupalPost('search/user/', $edit, t('Search')); + $this->assertText($user1->name, 'Search for username wildcard resulted in user name on page for administrative user.'); + + // Verify that wildcard search works for email. + $keys = $user1->mail; + $keys = substr($keys, 0, 2) . '*' . substr($keys, 4, 2); + $edit = array('keys' => $keys); + $this->drupalPost('search/user/', $edit, t('Search')); + $this->assertText($user1->name, 'Search for email wildcard resulted in user name on page for administrative user.'); + // Create a blocked user. $blocked_user = $this->drupalCreateUser(); $edit = array('status' => 0); diff --git a/site/profiles/README.txt b/site/profiles/README.txt new file mode 100644 index 0000000..91d012b --- /dev/null +++ b/site/profiles/README.txt @@ -0,0 +1,28 @@ +Installation profiles define additional steps that run after the base +installation provided by Drupal core when Drupal is first installed. + +WHAT TO PLACE IN THIS DIRECTORY? +-------------------------------- + +Place downloaded and custom installation profiles in this directory. +Installation profiles are generally provided as part of a Drupal distribution. +They only impact the installation of your site. They do not have any effect on +an already running site. + +DOWNLOAD ADDITIONAL DISTRIBUTIONS +--------------------------------- + +Contributed distributions from the Drupal community may be downloaded at +https://www.drupal.org/project/project_distribution. + +MULTISITE CONFIGURATION +----------------------- + +In multisite configurations, installation profiles found in this directory are +available to all sites during their initial site installation. + +MORE INFORMATION +---------------- + +Refer to the "Installation profiles" section of the README.txt in the Drupal +root directory for further information on extending Drupal with custom profiles. diff --git a/site/profiles/minimal/minimal.info b/site/profiles/minimal/minimal.info index d6647cf..933068c 100644 --- a/site/profiles/minimal/minimal.info +++ b/site/profiles/minimal/minimal.info @@ -5,8 +5,7 @@ core = 7.x dependencies[] = block dependencies[] = dblog -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/profiles/standard/standard.info b/site/profiles/standard/standard.info index 3b91c6a..b56253d 100644 --- a/site/profiles/standard/standard.info +++ b/site/profiles/standard/standard.info @@ -24,8 +24,7 @@ dependencies[] = field_ui dependencies[] = file dependencies[] = rdf -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/profiles/standard/standard.install b/site/profiles/standard/standard.install index 1d563a4..ae34eaf 100644 --- a/site/profiles/standard/standard.install +++ b/site/profiles/standard/standard.install @@ -275,13 +275,10 @@ function standard_install() { // Create a default vocabulary named "Tags", enabled for the 'article' content type. $description = st('Use tags to group articles on similar topics into categories.'); - $help = st('Enter a comma-separated list of words to describe your content.'); $vocabulary = (object) array( 'name' => st('Tags'), 'description' => $description, 'machine_name' => 'tags', - 'help' => $help, - ); taxonomy_vocabulary_save($vocabulary); @@ -301,12 +298,13 @@ function standard_install() { ); field_create_field($field); + $help = st('Enter a comma-separated list of words to describe your content.'); $instance = array( 'field_name' => 'field_' . $vocabulary->machine_name, 'entity_type' => 'node', 'label' => 'Tags', 'bundle' => 'article', - 'description' => $vocabulary->help, + 'description' => $help, 'widget' => array( 'type' => 'taxonomy_autocomplete', 'weight' => -4, diff --git a/site/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info b/site/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info index b51837f..995e283 100644 --- a/site/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info +++ b/site/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info @@ -6,8 +6,7 @@ core = 7.x hidden = TRUE files[] = drupal_system_listing_compatible_test.test -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info b/site/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info index 0bfcd89..45d3659 100644 --- a/site/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info +++ b/site/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info @@ -8,8 +8,7 @@ version = VERSION core = 6.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/profiles/testing/testing.info b/site/profiles/testing/testing.info index 07bcf47..0b2a332 100644 --- a/site/profiles/testing/testing.info +++ b/site/profiles/testing/testing.info @@ -4,8 +4,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/robots.txt b/site/robots.txt index 7de8435..a2ee32e 100644 --- a/site/robots.txt +++ b/site/robots.txt @@ -11,13 +11,43 @@ # Ignored: http://example.com/site/robots.txt # # For more information about the robots.txt standard, see: -# http://www.robotstxt.org/wc/robots.html -# -# For syntax checking, see: -# http://www.sxw.org.uk/computing/robots/check.html +# http://www.robotstxt.org/robotstxt.html User-agent: * Crawl-delay: 10 +# CSS, JS, Images +Allow: /misc/*.css$ +Allow: /misc/*.css? +Allow: /misc/*.js$ +Allow: /misc/*.js? +Allow: /misc/*.gif +Allow: /misc/*.jpg +Allow: /misc/*.jpeg +Allow: /misc/*.png +Allow: /modules/*.css$ +Allow: /modules/*.css? +Allow: /modules/*.js$ +Allow: /modules/*.js? +Allow: /modules/*.gif +Allow: /modules/*.jpg +Allow: /modules/*.jpeg +Allow: /modules/*.png +Allow: /profiles/*.css$ +Allow: /profiles/*.css? +Allow: /profiles/*.js$ +Allow: /profiles/*.js? +Allow: /profiles/*.gif +Allow: /profiles/*.jpg +Allow: /profiles/*.jpeg +Allow: /profiles/*.png +Allow: /themes/*.css$ +Allow: /themes/*.css? +Allow: /themes/*.js$ +Allow: /themes/*.js? +Allow: /themes/*.gif +Allow: /themes/*.jpg +Allow: /themes/*.jpeg +Allow: /themes/*.png # Directories Disallow: /includes/ Disallow: /misc/ diff --git a/site/scripts/generate-d6-content.sh b/site/scripts/generate-d6-content.sh index fc4c68f..cd33e4d 100644 --- a/site/scripts/generate-d6-content.sh +++ b/site/scripts/generate-d6-content.sh @@ -67,6 +67,7 @@ for ($i = 0; $i < 24; $i++) { ++$voc_id; $vocabulary['name'] = "vocabulary $voc_id (i=$i)"; $vocabulary['description'] = "description of ". $vocabulary['name']; + $vocabulary['help'] = "help for ". $vocabulary['name']; $vocabulary['nodes'] = $i > 11 ? array('page' => TRUE) : array(); $vocabulary['multiple'] = $multiple[$i % 12]; $vocabulary['required'] = $required[$i % 12]; diff --git a/site/scripts/password-hash.sh b/site/scripts/password-hash.sh index 004421a..1afe438 100644 --- a/site/scripts/password-hash.sh +++ b/site/scripts/password-hash.sh @@ -1,4 +1,4 @@ -#!/usr/bin/php +#!/usr/bin/env php useDefaults(array('test_id'))->execute(); // Execute tests. -simpletest_script_execute_batch($test_id, simpletest_script_get_test_list()); +$status = simpletest_script_execute_batch($test_id, simpletest_script_get_test_list()); // Retrieve the last database prefix used for testing and the last test class // that was run from. Use the information to read the lgo file in case any @@ -100,7 +104,7 @@ if ($args['xml']) { simpletest_clean_results_table($test_id); // Test complete, exit. -exit; +exit($status); /** * Print help text. @@ -142,6 +146,8 @@ All arguments are long options. --file Run tests identified by specific file names, instead of group names. Specify the path and the extension (i.e. 'modules/user/user.test'). + --directory Run all tests found within the specified file directory. + --xml If provided, test results will be written as xml files to this path. @@ -190,6 +196,7 @@ function simpletest_script_parse_args() { 'all' => FALSE, 'class' => FALSE, 'file' => FALSE, + 'directory' => '', 'color' => FALSE, 'verbose' => FALSE, 'test_names' => array(), @@ -222,7 +229,7 @@ function simpletest_script_parse_args() { else { // Argument not found in list. simpletest_script_print_error("Unknown argument '$arg'."); - exit; + exit(SIMPLETEST_SCRIPT_EXIT_FAILURE); } } else { @@ -235,7 +242,7 @@ function simpletest_script_parse_args() { // Validate the concurrency argument if (!is_numeric($args['concurrency']) || $args['concurrency'] <= 0) { simpletest_script_print_error("--concurrency must be a strictly positive integer."); - exit; + exit(SIMPLETEST_SCRIPT_EXIT_FAILURE); } return array($args, $count); @@ -265,7 +272,7 @@ function simpletest_script_init($server_software) { else { simpletest_script_print_error('Unable to automatically determine the path to the PHP interpreter. Supply the --php command line argument.'); simpletest_script_help(); - exit(); + exit(SIMPLETEST_SCRIPT_EXIT_FAILURE); } // Get URL from arguments. @@ -310,6 +317,8 @@ function simpletest_script_init($server_software) { function simpletest_script_execute_batch($test_id, $test_classes) { global $args; + $total_status = SIMPLETEST_SCRIPT_EXIT_SUCCESS; + // Multi-process execution. $children = array(); while (!empty($test_classes) || !empty($children)) { @@ -325,7 +334,7 @@ function simpletest_script_execute_batch($test_id, $test_classes) { if (!is_resource($process)) { echo "Unable to fork test process. Aborting.\n"; - exit; + exit(SIMPLETEST_SCRIPT_EXIT_FAILURE); } // Register our new child. @@ -345,13 +354,22 @@ function simpletest_script_execute_batch($test_id, $test_classes) { if (empty($status['running'])) { // The child exited, unregister it. proc_close($child['process']); - if ($status['exitcode']) { + if ($status['exitcode'] == SIMPLETEST_SCRIPT_EXIT_FAILURE) { + if ($status['exitcode'] > $total_status) { + $total_status = $status['exitcode']; + } + } + elseif ($status['exitcode']) { + $total_status = $status['exitcode']; echo 'FATAL ' . $test_class . ': test runner returned a non-zero error code (' . $status['exitcode'] . ').' . "\n"; } + + // Remove this child. unset($children[$cid]); } } } + return $total_status; } /** @@ -374,11 +392,14 @@ function simpletest_script_run_one_test($test_id, $test_class) { simpletest_script_print($info['name'] . ' ' . _simpletest_format_summary_line($test->results) . "\n", simpletest_script_color_code($status)); // Finished, kill this runner. - exit(0); + if ($had_fails || $had_exceptions) { + exit(SIMPLETEST_SCRIPT_EXIT_FAILURE); + } + exit(SIMPLETEST_SCRIPT_EXIT_SUCCESS); } catch (Exception $e) { echo (string) $e; - exit(1); + exit(SIMPLETEST_SCRIPT_EXIT_EXCEPTION); } } @@ -419,9 +440,20 @@ function simpletest_script_get_test_list() { else { if ($args['class']) { // Check for valid class names. - foreach ($args['test_names'] as $class_name) { - if (in_array($class_name, $all_tests)) { - $test_list[] = $class_name; + $test_list = array(); + foreach ($args['test_names'] as $test_class) { + if (class_exists($test_class)) { + $test_list[] = $test_class; + } + else { + $groups = simpletest_test_get_all(); + $all_classes = array(); + foreach ($groups as $group) { + $all_classes = array_merge($all_classes, array_keys($group)); + } + simpletest_script_print_error('Test class not found: ' . $test_class); + simpletest_script_print_alternatives($test_class, $all_classes, 6); + exit(SIMPLETEST_SCRIPT_EXIT_FAILURE); } } } @@ -440,13 +472,61 @@ function simpletest_script_get_test_list() { } } } + elseif ($args['directory']) { + // Extract test case class names from specified directory. + // Find all tests in the PSR-X structure; Drupal\$extension\Tests\*.php + // Since we do not want to hard-code too many structural file/directory + // assumptions about PSR-0/4 files and directories, we check for the + // minimal conditions only; i.e., a '*.php' file that has '/Tests/' in + // its path. + // Ignore anything from third party vendors, and ignore template files used in tests. + // And any api.php files. + $ignore = array('nomask' => '/vendor|\.tpl\.php|\.api\.php/'); + $files = array(); + if ($args['directory'][0] === '/') { + $directory = $args['directory']; + } + else { + $directory = DRUPAL_ROOT . "/" . $args['directory']; + } + $file_list = file_scan_directory($directory, '/\.php|\.test$/', $ignore); + foreach ($file_list as $file) { + // '/Tests/' can be contained anywhere in the file's path (there can be + // sub-directories below /Tests), but must be contained literally. + // Case-insensitive to match all Simpletest and PHPUnit tests: + // ./lib/Drupal/foo/Tests/Bar/Baz.php + // ./foo/src/Tests/Bar/Baz.php + // ./foo/tests/Drupal/foo/Tests/FooTest.php + // ./foo/tests/src/FooTest.php + // $file->filename doesn't give us a directory, so we use $file->uri + // Strip the drupal root directory and trailing slash off the URI + $filename = substr($file->uri, strlen(DRUPAL_ROOT)+1); + if (stripos($filename, '/Tests/')) { + $files[drupal_realpath($filename)] = 1; + } else if (stripos($filename, '.test')){ + $files[drupal_realpath($filename)] = 1; + } + } + + // Check for valid class names. + foreach ($all_tests as $class_name) { + $refclass = new ReflectionClass($class_name); + $classfile = $refclass->getFileName(); + if (isset($files[$classfile])) { + $test_list[] = $class_name; + } + } + } else { // Check for valid group names and get all valid classes in group. foreach ($args['test_names'] as $group_name) { if (isset($groups[$group_name])) { - foreach ($groups[$group_name] as $class_name => $info) { - $test_list[] = $class_name; - } + $test_list = array_merge($test_list, array_keys($groups[$group_name])); + } + else { + simpletest_script_print_error('Test group not found: ' . $group_name); + simpletest_script_print_alternatives($group_name, array_keys($groups)); + exit(SIMPLETEST_SCRIPT_EXIT_FAILURE); } } } @@ -454,7 +534,7 @@ function simpletest_script_get_test_list() { if (empty($test_list)) { simpletest_script_print_error('No valid tests were specified.'); - exit; + exit(SIMPLETEST_SCRIPT_EXIT_FAILURE); } return $test_list; } @@ -674,3 +754,37 @@ function simpletest_script_color_code($status) { } return 0; // Default formatting. } + +/** + * Prints alternative test names. + * + * Searches the provided array of string values for close matches based on the + * Levenshtein algorithm. + * + * @see http://php.net/manual/en/function.levenshtein.php + * + * @param string $string + * A string to test. + * @param array $array + * A list of strings to search. + * @param int $degree + * The matching strictness. Higher values return fewer matches. A value of + * 4 means that the function will return strings from $array if the candidate + * string in $array would be identical to $string by changing 1/4 or fewer of + * its characters. + */ +function simpletest_script_print_alternatives($string, $array, $degree = 4) { + $alternatives = array(); + foreach ($array as $item) { + $lev = levenshtein($string, $item); + if ($lev <= strlen($item) / $degree || FALSE !== strpos($string, $item)) { + $alternatives[] = $item; + } + } + if (!empty($alternatives)) { + simpletest_script_print(" Did you mean?\n", SIMPLETEST_SCRIPT_COLOR_FAIL); + foreach ($alternatives as $alternative) { + simpletest_script_print(" - $alternative\n", SIMPLETEST_SCRIPT_COLOR_FAIL); + } + } +} diff --git a/site/sites/all/modules/libraries/CHANGELOG.txt b/site/sites/all/modules/libraries/CHANGELOG.txt index 4738559..33fa5e8 100644 --- a/site/sites/all/modules/libraries/CHANGELOG.txt +++ b/site/sites/all/modules/libraries/CHANGELOG.txt @@ -1,4 +1,38 @@ +Libraries 7.x-2.3, 2016-05-12 +----------------------------- +#1884246 by BR0kEN, tstoeckler et al: Allow downloading libraries via Drush. +by tstoeckler: Allow detecting all libraries by calling libraries_detect(). +by tstoeckler: Prevent LibrariesWebTestBase from being displayed in the UI. +#819610 by tstoeckler: Add tests for the Libraries UI. +#1884246 by BR0kEN, tstoeckler: Show the provider in drush libraries-list +#819610 by Pol, tstoeckler: Show the provider in the UI. +#2634732 by Rob Holmes, tstoeckler: Sort libraries by title in the UI. +#2585395 by robinsonsarah01: Allow object methods as version callbacks. +#819610 by tstoeckler, Pol: Provide a status report for library information. +#2352251 by netw3rker: Fix incorrect hook name in libraries.api.php. +#2352237 by netw3rker, tstoeckler: Allow clearing the libraries cache from Drush. +#2193969 by tstoeckler: Avoid warnings for stale library caches. +#2287529 by drupalshrek, tstoeckler: Update installation link in README.txt. + +Libraries 7.x-2.2, 2014-02-09 +----------------------------- +#2046919 by tstoeckler: Clarify 'version' docs. +#1946110 by munroe_richard: Allow uppercase letters as library machine names. +#1953260 by tstoeckler: Improve documentation of libraries_get_version(). +#1855918 by tstoeckler: Make integration file loading backwards-compatible. +#1876124 by tstoeckler: Fix integration files for themes. +#1876124 by tstoeckler: Add tests for theme-provided library information. +#1876124 by tstoeckler: Prepare for adding a test theme. +#1876124 by tstoeckler | whastings, fubhy: Fix hook_libraries_info() for themes. +#2015721 by tstoeckler, CaptainHook: Protect against files overriding local variables. +#2046919 by tstoeckler: Improve documentation around 'version callback'. +#1844272 by tstoeckler, jweowu: Fix typos in libraries.api.php. +#1938638 by tstoeckler: Prevent weird PHP notice on update. +#1329388 by RobLoach, tstoeckler: Clear static caches in libraries_flush_caches(). +#1855918 by rbayliss: Load integration files after library files. +#1938638 by Pol: Fix typo in libraries.api.php. + Libraries 7.x-2.1, 2013-03-09 ----------------------------- #1937446 by Pol, tstoeckler: Add a 'pre-dependencies-load' callback group. @@ -13,7 +47,6 @@ Libraries 7.x-2.0, 2012-07-29 #1578618 by iamEAP: Fixed Fatal cache flush failure on major version upgrades. #1449346 by tstoeckler, sun: Clean-up libraries.test - Libraries 7.x-2.0-alpha2, 2011-12-15 ------------------------------------ #1299076 by tstoeckler: Improve testing of JS, CSS, and PHP files. @@ -23,7 +56,6 @@ Libraries 7.x-2.0-alpha2, 2011-12-15 #1321372 by Rob Loach: Provide a 'post-load' callback group. #1205854 by tstoeckler, sun: Test library caching. - Libraries 7.x-2.0-alpha1, 2011-10-01 ------------------------------------ #1268342 by tstoeckler: Clean up drush libraries-list command. @@ -65,20 +97,20 @@ by sun: Fixed testbot breaks upon .info file without .module file. Libraries 7.x-1.x, xxxx-xx-xx ----------------------------- - Libraries 7.x-1.0, 2010-01-27 ----------------------------- #743522 by sun: Ported to D7. +Libraries 6.x-1.x, xxxx-xx-xx +----------------------------- + Libraries 6.x-1.0, 2010-01-27 ----------------------------- #1028744 by tstoeckler: Code clean-up. #496732 by tstoeckler, robphillips: Allow placing libraries in root directory. - -Libraries 6.x-1.0-ALPHA1, 2009-12-30 +Libraries 6.x-1.0-alpha1, 2009-12-30 ------------------------------------ #480440 by markus_petrux: Fixed base_path() not applied to default library path. #320562 by sun: Added basic functions. - diff --git a/site/sites/all/modules/libraries/README.txt b/site/sites/all/modules/libraries/README.txt index 70a7725..200bc53 100644 --- a/site/sites/all/modules/libraries/README.txt +++ b/site/sites/all/modules/libraries/README.txt @@ -16,10 +16,11 @@ Bug reports, feature suggestions and latest developments: -- INSTALLATION -- -* Install as usual, see http://drupal.org/node/70151 for further information. - Note that installing external libraries is separate from installing this - module and should happen in the sites/all/libraries directory. See - http://drupal.org/node/1440066 for more information. +* Install as usual, see + https://www.drupal.org/documentation/install/modules-themes/modules-7 for + further information. Note that installing external libraries is separate from + installing this module and should happen in the sites/all/libraries directory. + See http://drupal.org/node/1440066 for more information. -- CONTACT -- diff --git a/site/sites/all/modules/libraries/libraries.admin.inc b/site/sites/all/modules/libraries/libraries.admin.inc new file mode 100644 index 0000000..8d9e0fb --- /dev/null +++ b/site/sites/all/modules/libraries/libraries.admin.inc @@ -0,0 +1,547 @@ + $library) { + $actions = array(); + + if ($library['vendor url']) { + $actions[] = l('Homepage', $library['vendor url']); + } + if ($library['download url']) { + $actions[] = l('Download', $library['download url']); + } + + $rows[] = array( + 'data' => array( + l($library['name'], 'admin/reports/libraries/' . $machine_name), + ($library['installed'] ? t('OK') : drupal_ucfirst($library['error'])), + (isset($library['version']) ? $library['version'] : ''), + libraries_admin_get_provider_with_type($library), + implode(' | ', $actions), + ), + 'class' => ($library['installed'] ? array('ok') : array('error')), + ); + } + + $form['libraries']['list'] = array( + '#theme' => 'table', + '#header' => $header, + '#rows' => $rows, + '#empty' => t('There are currently no libraries installed'), + ); + + return $form; +} + +/** + * Form generation callback for the status overview for a single library. + * + * This is a form instead of a page to allow easier extending in contributed + * modules. + * + * @param array $form + * An associative array containing the structure of the form. + * @param array $form_state + * A keyed array containing the current state of the form. + * @param array $library + * A library information array. + * + * @return array|null + * The form array for the status form or NULL if the library was not found. + * + * @todo Add some var_export($library)-style output + */ +function libraries_admin_library_status_form(array $form, array &$form_state, $library) { + drupal_set_title(t('Status report for library %library', array('%library' => $library['name'])), PASS_THROUGH); + + if ($library['installed']) { + drupal_set_message(t('The %name library is installed correctly.', array('%name' => $library['name']))); + $form['status'] = libraries_admin_status_table($library); + } + else { + drupal_set_message($library['error message'], 'error'); + switch ($library['error']) { + case 'not found': + $form['instructions'] = libraries_admin_instructions_missing($library); + break; + + case 'not detected': + $form['instructions'] = libraries_admin_instructions_undetected($library);; + break; + + case 'not supported': + $form['instructions'] = libraries_admin_instructions_unsupported($library); + break; + + case 'missing dependency': + $form['instructions']['instruction']['#markup'] = t('There a missing dependency in your configuration that prevent this library to work properly.') . '
                                '; + break; + + case 'incompatible dependency': + $form['instructions']['instruction']['#markup'] = t('There an incompatible dependency in your configuration that prevent this library to work properly.') . '
                                '; + break; + } + } + + return $form; +} + + +/** + * Displays a table of status information about a library. + * + * @param array $library + * A library information array. + * + * @return array + * A renderable array containing a table with status information. + */ +function libraries_admin_status_table(array $library) { + $header = array(array( + // @todo The title implies that other type of information is displayed, as + // well, but this is currently not the case. + // @todo Use CSS instead of a element. + 'data' => '' . t('General information') . '', + 'colspan' => 2, + 'class' => 'table-heading', + 'no_striping' => TRUE, + )); + + $rows = array(); + // @todo Use CSS instead of elements. + $rows['name'] = array('' . t('Name') . '', check_plain($library['name'])); + $rows['machine_name'] = array('' . t('Machine name') . '', check_plain($library['machine name'])); + if ($library['vendor url']) { + $rows['vendor_url'] = array('' . t('Vendor URL') . '', l($library['vendor url'], $library['vendor url'])); + } + if ($library['download url']) { + $rows['download_url'] = array('' . t('Download URL') . '', l($library['download url'], $library['download url'])); + } + $rows['provider'] = array('' . t('Provider') . '', libraries_admin_get_provider_with_type($library)); + $rows['library_path'] = array('' . t('Library path') . '', $library['library path']); + $rows['version'] = array('' . t('Version') . '', $library['version']); + if (!empty($library['variants'])) { + $rows['variants'] = array('' . t('Variants') . '', implode(', ', array_keys($library['variants']))); + } + + return array( + '#theme' => 'table', + '#header' => $header, + '#rows' => $rows, + ); +} + +/** + * Returns instructions for dealing with a missing library. + * + * @param array $library + * A library information array. + * + * @return array + * A renderable array containing the instructions. + */ +function libraries_admin_instructions_missing(array $library) { + $build = array(); + + $build['instruction']['#markup'] = t('Follow these steps to install the library:'); + + $items = array(); + // 1. Download the library. + // If no supported versions are specified, the latest version is + // recommended. + if (empty($library['versions'])) { + $items[] = t('Download the latest version of the library here.', array( + '@download-url' => $library['download url'], + )); + } + // Otherwise, the latest supported version is recommended. + else { + $versions = array_keys($library['versions']); + usort($versions, 'version_compare'); + $versions = array_reverse($versions); + $version = $versions[0]; + $items[] = t('Download version %version of the library here.', array( + '%version' => $version, + '@download-url' => $library['download url'], + )); + } + // 2. Unpack it. + $items[] = t('If the library is an archive, i.e. if the file ending is for example .tar.gz or .zip, unpack it.'); + // 3. Create the libraries folder. + $items[] = t('In the %library-directory directory of your Drupal installation create a %library directory.', array( + '%library-directory' => 'sites/all/libraries', + '%library' => $library['machine name'], + )); + // 4. Upload it. + // If the library has variant-independent files, give the user the + // location of an example file to check his filesystem against. + if ($directory_layout = libraries_admin_directory_layout($library)) { + $items[] = t('Upload the whole library (which can consist of multiple directories) into the newly created %library-path directory. The following files and directories should be contained in that directory: !directory-layout', array( + '%library-path' => 'sites/all/libraries/' . $library['machine name'], + '!directory-layout' => drupal_render($directory_layout), + )); + } + else { + $items[] = t('Upload the whole library (which can consist of multiple directories) into the newly created %library-path directory.', array( + '%library-path' => 'sites/all/libraries/' . $library['machine name'], + )); + } + // 5. Reload. + $items[] = t('Reload the page. If successful, you should see status information about this library.'); + + $build['steps'] = array( + '#theme' => 'item_list', + '#items' => $items, + '#type' => 'ol' + ); + + return $build; +} + + +/** + * Returns instructions for dealing with an undetected library. + * + * @param array $library + * A library information array. + * + * @return array + * A renderable array containing the instructions. + */ +function libraries_admin_instructions_undetected($library) { + $build = array(); + // Re-check location. + // @todo Avoid usage of
                                elements. + $build['instruction']['#markup'] = t('Check that the whole library is located at %library-path.', array( + '%library-path' => $library['library path'], + )) . '
                                '; + // If the library has variant-independent files, give the user the + // exact location of the files to check against. + // @todo It should be possible to display even variant-specific files + // in case the variant is installed, but libraries_detect() does not + // detect variants if the library version cannot be detected. + if ($directory_layout = libraries_admin_directory_layout($library)) { + $build['directory_layout'] = $directory_layout; + $build['directory_layout']['#prefix'] = t('The following files and directories should be contained in that directory:'); + } + + // If the library is placed correctly the library information is + // incorrect. + // This switch could be avoided by using $library['info type'], but that would + // hinder properly translating these strings. + $build['reload']['#markup'] = t('If you have moved any files, reload the page. If successful, you should see status information about this library.') . '
                                '; + $build['notice']['#markup'] = t('If the files are placed correctly and the version can still not be detected, the library information is incorrect.') . '
                                '; + + $provider = libraries_admin_get_provider($library); + switch ($library['info type']) { + case 'module': + $build['contact']['#markup'] = t('Contact the maintainer of the %module module to correct this.', array( + '%module' => $provider, + )) . '
                                '; + break; + + case 'theme': + $build['contact']['#markup'] = t('Contact the maintainer of the %theme theme to correct this.', array( + '%theme' => $provider, + )) . '
                                '; + break; + + case 'info file': + $build['contact']['#markup'] = t('Contact the maintainer of the %info-file info file to correct this.', array( + '%info-file' => $provider, + )) . '
                                '; + break; + } + return $build; +} + + +/** + * Returns instructions for dealing with an unsupported library. + * + * @param array $library + * A library information array. + * + * @return array + * A renderable array containing the instructions. + */ +function libraries_admin_instructions_unsupported($library) { + $build = array(); + $items = array(); + + // Either download a different version of the library... + $versions = array_keys($library['versions']); + usort($versions, 'version_compare'); + $versions = array_reverse($versions); + $version = $versions[0]; + $build['instruction']['#markup'] = t('Please install version %version of the library by following the following steps:', + array( + '%version' => $version, + )); + // 1. Delete the old library. + $items[] = t('Delete the entire contents of the %library-path directory.', + array( + '%library-path' => $library['library path'], + )); + // 2. Download the new library. + $items[] = t('Download version %version of the library here.', + array( + '%version' => $version, + '@download-url' => $library['download url'], + )); + // 3. Unpack it. + $items[] = t('If the library is an archive, i.e. if the file ending is for example .tar.gz or .zip, unpack it.'); + // 4. Upload the new library. + // If the library has variant-independent files, give the user the + // location of an example file to check his filesystem against. + if ($directory_layout = libraries_admin_directory_layout($library)) { + $items[] = t('Upload the new files into the %library-path directory. The following files and directories should be contained in that directory: !directory-layout', + array( + '%library-path' => $library['library path'], + '!directory-layout' => drupal_render($directory_layout), + )); + } + else { + $items[] = t('Upload the new files into the %library-path directory.', + array( + '%library-path' => $library['library path'], + )); + } + // 5. Reload. + $items[] = t('Reload the page. If successful, you should see status information about this library.'); + $build['steps'] = array( + '#theme' => 'item_list', + '#items' => $items, + '#type' => 'ol', + ); + // ...or contact the maintainer of the library information. + $provider = libraries_admin_get_provider($library); + switch ($library['info type']) { + case 'module': + $build['contact']['#markup'] = t('If you are bound to version @version of the library, ask the maintainer of the %module module to provide support for it.', array( + '@version' => $library['version'], + '%module' => $provider, + )) . '
                                '; + break; + + case 'theme': + $build['contact']['#markup'] = t('If you are bound to version @version of the library, ask the maintainer of the %theme theme to provide support for it.', array( + '@version' => $library['version'], + '%theme' => $provider, + )) . '
                                '; + break; + + case 'info file': + $build['contact']['#markup'] = t('If you are bound to version @version of the library, ask the maintainer of the %info-file info file to provide support for it.', array( + '@version' => $library['version'], + '%info-file' => $provider, + )) . '
                                '; + break; + } + return $build; +} + +/** + * Returns the directory layout of the library, if possible. + * + * The result of this function can help users to verify that they have uploaded + * the library to the correct location. + * + * @param array $library + * A library information array. + * + * @return array|false + * A renderable array containing the directory layout of the library or FALSE + * if a directory layout could not be generated. + */ +function libraries_admin_directory_layout(array $library) { + $build = array( + '#theme' => 'item_list', + '#type' => 'ul', + '#items' => array(), + ); + + $items = &$build['#items']; + if ($library['path']) { + $items = &libraries_admin_path_to_tree($items, $library['path']); + } + foreach (array('js', 'css', 'php') as $type) { + if (!empty($library['files'][$type])) { + $files = array_keys($library['files'][$type]); + foreach ($files as $file) { + // Skip JavaScript settings. + if (is_int($file)) { + continue; + } + + $children = &$items; + libraries_admin_path_to_tree($children, $file); + } + } + } + return $build['#items'] ? $build : FALSE; +} + +/** + * Converts a file path into a tree structure for use in an item list. + * + * For example, the path 'foo/bar/baz' will be converted into the tree structure + * represented by the following list: + * - foo + * - bar + * - baz + * + * The $items array that is modified by reference or returned (see below) can + * be used as the 'items' variable for theme_item_list(). + * + * This function modifies passed-in $items array, so that multiple paths can + * be placed into the same tree structure easily. + * + * @code + * $items = array(); + * foreach ($paths as $path) { + * libraries_admin_path_to_tree($items, $path); + * } + * @endcode + * + * It also returns the last item by reference, so that it can also be used to + * traverse into a sub-structure and add further children there. + * + * @code + * $items = array(); + * $children = &libraries_admin_path_to_tree($items, $path); + * foreach ($sub_paths as $sub_path) { + * libraries_admin_path_to_tree($children, $sub_path); + * } + * @endcode + * + * @param array $items + * @param string $path + * + * @return array + */ +function &libraries_admin_path_to_tree(array &$items, $path) { + $part = strtok($path, '/'); + while ($part) { + if (!isset($items[$part])) { + $items[$part] = array( + 'data' => $part, + 'children' => array(), + ); + } + $items = &$items[$part]['children']; + $part = strtok('/'); + } + + return $items; +} + +/** + * Sorts libraries by name. + * + * This function can be used as a callback for usort() or uasort(). + * + * @param array $a + * The first library information array. + * @param array $b + * The second library information array. + * + * @return int + * Returns -1 if $a is considered smaller than $b, 1 if $a considered greater + * than $b and 0 if $a and $b are considered equal. + * + * @see strnatcasecmp() + * @see usort() + * @see uasort() + */ +function libraries_admin_sort_title(array $a, array $b) { + return strnatcasecmp($a['name'], $b['name']); +} + +/** + * Returns the library's provider. + * + * The provider can be a module, a theme, or an info file. + * + * @param array $library + * A library information array. + * + * @return string + * The provider. + */ +function libraries_admin_get_provider($library) { + $provider = ''; + + switch ($library['info type']) { + case 'module': + case 'theme': + $info = system_get_info($library['info type'], $library[$library['info type']]); + $provider = $info['name']; + break; + + case 'info file': + $provider = basename($library['info file']); + break; + } + + return $provider; +} + +/** + * Returns the library's provider and provider type. + * + * The provider type is either 'module', 'theme', or 'info file'. + * + * @param array $library + * A library information array. + * + * @return string + * The provider and provider type. + */ +function libraries_admin_get_provider_with_type($library) { + $provider = libraries_admin_get_provider($library); + $provider_with_type = ''; + + // This switch could be avoided by using $library['info type'], but that would + // hinder properly translating these strings. + switch ($library['info type']) { + case 'module': + $provider_with_type = t('%module module', array('%module' => $provider)); + break; + + case 'theme': + $provider_with_type = t('%theme theme', array('%theme' => $provider)); + break; + + case 'info file': + $provider_with_type = t('%info-file info file', array('%info-file' => $provider)); + break; + } + + return $provider_with_type; +} diff --git a/site/sites/all/modules/libraries/libraries.api.php b/site/sites/all/modules/libraries/libraries.api.php index 9ae1b32..71e90e0 100644 --- a/site/sites/all/modules/libraries/libraries.api.php +++ b/site/sites/all/modules/libraries/libraries.api.php @@ -16,6 +16,10 @@ * - name: The official, human-readable name of the library. * - vendor url: The URL of the homepage of the library. * - download url: The URL of a web page on which the library can be obtained. + * - download file url: (optional) The URL where the latest version of the + * library can be downloaded. In case such a static URL exists the library + * can be downloaded automatically via Drush. Run + * 'drush help libraries-download' in the command-line for more information. * - path: (optional) A relative path from the directory of the library to the * actual library. Only required if the extracted download package contains * the actual library files in a sub-directory. @@ -30,7 +34,9 @@ * changes of implementing modules and to support different versions of a * library simultaneously (though only one version can be installed per * site). A valid use-case is an external library whose version cannot be - * determined programatically. + * determined programmatically. Either 'version' or 'version callback' (or + * 'version arguments' in case libraries_get_version() is being used as a + * version callback) must be declared. * - version callback: (optional) The name of a function that detects and * returns the full version string of the library. The first argument is * always $library, an array containing all library information as described @@ -38,18 +44,22 @@ * arguments, either as a single $options parameter or as multiple * parameters, which correspond to the two ways to specify the argument * values (see 'version arguments'). Defaults to libraries_get_version(). - * - version arguments: A list of arguments to pass to the version callback. - * Version arguments can be declared either as an associative array whose - * keys are the argument names or as an indexed array without specifying - * keys. If declared as an associative array, the arguments get passed to - * the version callback as a single $options parameter whose keys are the - * argument names (i.e. $options is identical to the specified array). If - * declared as an indexed array, the array values get passed to the version - * callback as seperate arguments in the order they were declared. The - * default version callback libraries_get_version() expects a single, - * associative array with named keys: - * - file: The filename to parse for the version, relative to the library - * path. For example: 'docs/changelog.txt'. + * Unless 'version' is declared or libraries_get_version() is being used as + * a version callback, 'version callback' must be declared. In the latter + * case, however, 'version arguments' must be declared in the specified way. + * - version arguments: (optional) A list of arguments to pass to the version + * callback. Version arguments can be declared either as an associative + * array whose keys are the argument names or as an indexed array without + * specifying keys. If declared as an associative array, the arguments get + * passed to the version callback as a single $options parameter whose keys + * are the argument names (i.e. $options is identical to the specified + * array). If declared as an indexed array, the array values get passed to + * the version callback as separate arguments in the order they were + * declared. The default version callback libraries_get_version() expects a + * single, associative array with named keys: + * - file: The filename to parse for the version, relative to the path + * speficied as the 'library path' property (see above). For example: + * 'docs/changelog.txt'. * - pattern: A string containing a regular expression (PCRE) to match the * library version. For example: '@version\s+([0-9a-zA-Z\.-]+)@'. Note * that the returned version is not the match of the entire pattern (i.e. @@ -60,6 +70,10 @@ * - cols: (optional) The maximum number of characters per line to take into * account. Defaults to 200. In case of minified or compressed files, this * prevents reading the entire file into memory. + * Defaults to an empty array. 'version arguments' must be specified unless + * 'version' is declared or the specified 'version callback' does not + * require any arguments. The latter might be the case with a + * library-specific version callback, for example. * - files: An associative array of library files to load. Supported keys are: * - js: A list of JavaScript files to load, using the same syntax as Drupal * core's hook_library(). @@ -100,10 +114,10 @@ * available or not. The first argument is always $library, an array * containing all library information as described here. The second * argument is always a string containing the variant name. There are two - * ways to declare the variant callback's additinal arguments, either as a + * ways to declare the variant callback's additional arguments, either as a * single $options parameter or as multiple parameters, which correspond * to the two ways to specify the argument values (see 'variant - * arguments'). If ommitted, the variant is expected to always be + * arguments'). If omitted, the variant is expected to always be * available. * - variant arguments: A list of arguments to pass to the variant callback. * Variant arguments can be declared either as an associative array whose @@ -112,7 +126,7 @@ * the variant callback as a single $options parameter whose keys are the * argument names (i.e. $options is identical to the specified array). If * declared as an indexed array, the array values get passed to the - * variant callback as seperate arguments in the order they were declared. + * variant callback as separate arguments in the order they were declared. * Variants can be version-specific (see 'versions'). * - versions: (optional) An associative array of supported library versions. * Naturally, libraries evolve over time and so do their APIs. In case a @@ -146,9 +160,23 @@ * Valid callback groups are: * - info: Callbacks registered in this group are applied after the library * information has been retrieved via hook_libraries_info() or info files. + * At this point the following additional information is available: + * - $library['info type']: How the library information was obtained. Can + * be 'info file', 'module', or 'theme', depending on whether the + * library information was obtained from an info file, an enabled module + * or an enabled theme, respectively. + * Additionally, one of the following three keys is available, depending + * on the value of $library['info type']. + * - $library['info file']: In case the library information was obtained + * from an info file, the URI of the info file. + * - $library['module']: In case the library was obtained from an enabled + * module, the name of the providing module. + * - $library['theme']: In case the library was obtained from an enabled + * theme, the name of the providing theme. * - pre-detect: Callbacks registered in this group are applied after the * library path has been determined and before the version callback is - * invoked. At this point the following additional information is available: + * invoked. At this point the following additional information is + * available: * - $library['library path']: The path on the file system to the library. * - post-detect: Callbacks registered in this group are applied after the * library has been successfully detected. At this point the library @@ -187,6 +215,9 @@ function hook_libraries_info() { 'name' => 'Example library', 'vendor url' => 'http://example.com', 'download url' => 'http://example.com/download', + // It is important that this URL does not include the actual version to + // download. Not all libraries provide such a static URL. + 'download file url' => 'http://example.com/latest.tar.gz', // Optional: If, after extraction, the actual library files are contained in // 'sites/all/libraries/example/lib', specify the relative path here. 'path' => 'lib', @@ -299,7 +330,7 @@ function hook_libraries_info() { 'mymodule_example_libraries_postdetect_callback', ), // Called before the library's dependencies are loaded. - 'pre-dependencie-load' => array( + 'pre-dependencies-load' => array( 'mymodule_example_libraries_pre_dependencies_load_callback', ), // Called before the library is loaded. @@ -319,6 +350,9 @@ function hook_libraries_info() { 'name' => 'Simple library', 'vendor url' => 'http://example.com/simple', 'download url' => 'http://example.com/simple', + // The download file URL can also point to a single file (instead of an + // archive). + 'download file url' => 'http://example.com/latest/simple.js', 'version arguments' => array( 'file' => 'readme.txt', // Best practice: Document the actual version strings for later reference. @@ -443,7 +477,7 @@ function hook_libraries_info_alter(&$libraries) { * @return * An array of paths. */ -function hook_libraries_paths() { +function hook_libraries_info_file_paths() { // Taken from the Libraries test module, which needs to specify the path to // the test library. return array(drupal_get_path('module', 'libraries_test') . '/example'); diff --git a/site/sites/all/modules/libraries/libraries.drush.inc b/site/sites/all/modules/libraries/libraries.drush.inc index 26b35eb..3258713 100644 --- a/site/sites/all/modules/libraries/libraries.drush.inc +++ b/site/sites/all/modules/libraries/libraries.drush.inc @@ -1,5 +1,4 @@ 'libraries_drush_list', - 'description' => dt('Lists registered library information.'), + 'description' => dt('Show a list of registered libraries.'), 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_FULL, + 'aliases' => array('lls', 'lib-list'), ); - /**$items['libraries-download'] = array( - 'callback' => 'libraries_drush_download', - 'description' => dt('Downloads a registered library into the libraries directory for the active site.'), + + $items['libraries-download'] = array( + 'description' => dt('Download library files of registered libraries.'), + 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_FULL, + 'aliases' => array('ldl', 'lib-download'), 'arguments' => array( - 'name' => dt('The internal name of the registered library.'), + 'libraries' => 'A comma delimited list of library machine names.', ), - );*/ + 'required-arguments' => TRUE, + ); + return $items; } /** - * Implements hook_drush_help(). + * Implements hook_drush_cache_clear(). + * + * @see drush_cache_clear_types() */ -function libraries_drush_help($section) { - switch ($section) { - case 'drush:libraries-list': - return dt('Lists registered library information.'); - - case 'drush:libraries-download': - return dt('Downloads a registered library into the libraries directory for the active site. +function libraries_drush_cache_clear(array &$types) { + $types['libraries'] = 'libraries_drush_invalidate_cache'; +} -See libraries-list for a list of registered libraries.'); +/** + * Clears the library cache. + */ +function libraries_drush_invalidate_cache() { + // @see drupal_flush_all_caches() + foreach (libraries_flush_caches() as $table) { + cache_clear_all('*', $table, TRUE); } } /** - * Lists registered library information. + * Command callback. Show a list of registered libraries. */ -function libraries_drush_list() { - $libraries = array(); - foreach (libraries_info() as $name => $info) { - $libraries[$name] = libraries_detect($name); - } +function drush_libraries_list() { + $libraries = libraries_detect(); ksort($libraries); if (empty($libraries)) { drush_print('There are no registered libraries.'); } - else { + module_load_include('inc', 'libraries', 'libraries.admin'); + $rows = array(); // drush_print_table() automatically treats the first row as the header, if // $header is TRUE. - $rows[] = array(dt('Name'), dt('Status'), dt('Version'), dt('Variants'), dt('Dependencies')); + $rows[] = array( + dt('Name'), + dt('Status'), + dt('Version'), + dt('Variants'), + dt('Dependencies'), + dt('Provider'), + ); foreach ($libraries as $name => $library) { - $status = ($library['installed'] ? dt('OK') : drupal_ucfirst($library['error'])); - $version = (($library['installed'] && !empty($library['version'])) ? $library['version'] : '-'); - // Only list installed variants. $variants = array(); foreach ($library['variants'] as $variant_name => $variant) { @@ -69,83 +80,150 @@ function libraries_drush_list() { $variants[] = $variant_name; } } - $variants = (empty($variants) ? '-' : implode(', ', $variants)); - $dependencies = (!empty($library['dependencies']) ? implode(', ', $library['dependencies']) : '-'); - - $rows[] = array($name, $status, $version, $variants, $dependencies); + $rows[] = array( + $name, + $library['installed'] ? dt('OK') : drupal_ucfirst($library['error']), + ($library['installed'] && $library['version']) ? '-' : $library['version'], + $variants ? implode(', ', $variants) : '-', + $library['dependencies'] ? implode(', ', $library['dependencies']) : '-', + libraries_admin_get_provider($library), + ); } + // Make the possible values for the 'Status' column and the 'Version' header // wrap nicely. - $widths = array(0, 12, 7, 0, 0); + $widths = array(0, 12, 7, 0, 0, 0); drush_print_table($rows, TRUE, $widths); } } /** - * Downloads a library. + * Command callback. Downloads a library. + * + * Only libraries that provide a download file URL can be downloaded. * - * @param $name - * The internal name of the library to download. + * @see hook_libraries_info() + * @see drush_pm_download() */ -function libraries_drush_download($name) { - return; +function drush_libraries_download() { + drush_command_include('pm-download'); + + $libraries = libraries_info(); + + // @todo Consider supporting downloading all downloadable libraries. + // @todo Consider offering a selection if no library is specified. + foreach (pm_parse_arguments(func_get_args(), FALSE) as $machine_name) { + if (!isset($libraries[$machine_name])) { + $message = dt("The !library library is not registered with Libraries API.\n", array('!library' => $machine_name)); + $message .= dt("Provide an info file for it or implement hook_libraries_info().\n"); + $message .= dt("See hook_libraries_info() for more information.\n"); + drush_set_error('DRUSH_LIBRARY_UKNOWN', $message); + continue; + } + $library = $libraries[$machine_name]; + + if (empty($library['download file url'])) { + $message = dt("The !library library cannot be downloaded.\n", array('!library' => $machine_name)); + $message .= dt("Libraries need to specify a download file URL to support being downloaded via Drush.\n"); + $message .= dt("See hook_libraries_info() for more information.\n"); + drush_set_error('DRUSH_LIBRARY_NOT_DOWNLOADABLE', $message); + continue; + } + $download_url = $library['download file url']; + + drush_log(dt('Downloading library !name ...', array('!name' => $machine_name))); + + // @see package_handler_download_project() in wget.inc + // It cannot be used directly because it will always try to extract the + // archive which fails when downloading a single file. + // @todo Modify upstream to be able to use + // package_handler_download_project() directly. + // Prepare download path. On Windows file name cannot contain '?'. + // See http://drupal.org/node/1782444 + $filename = str_replace('?', '_', basename($download_url)); + $download_path = drush_tempdir() . '/' . $filename; + + // Download the tarball. + // Never cache the downloaded file. The downloading relies on the fact that + // different versions of the library are available under the same URL as new + // versions are released. + $download_path = drush_download_file($download_url, $download_path, 0); + if ($download_path || drush_get_context('DRUSH_SIMULATE')) { + drush_log(dt('Downloading !filename was successful.', array('!filename' => $filename))); + } + else { + drush_set_error('DRUSH_PM_DOWNLOAD_FAILED', dt('Unable to download !project to !path from !url.', array('!project' => $machine_name, '!path' => $download_path, '!url' => $download_url))); + drush_log(dt('Error downloading !name', array('!name' => $machine_name)), 'error'); + continue; + } - // @todo Looks wonky? - if (!drush_shell_exec('type unzip')) { - return drush_set_error(dt('Missing dependency: unzip. Install it before using this command.')); - } + // @todo Suport MD5 file hashing. - // @todo Simply use current drush site. - $args = func_get_args(); - if ($args[0]) { - $path = $args[0]; - } - else { - $path = 'sites/all/libraries'; - } + // Extract the tarball in place and return the full path to the untarred directory. + $download_base = dirname($download_path); + if (drush_file_is_tarball($download_path)) { + if (!$tar_file_list = drush_tarball_extract($download_path, $download_base, TRUE)) { + // An error has been logged. + return FALSE; + } + $tar_directory = drush_trim_path($tar_file_list[0]); + $download_path = $download_base . '/' . $tar_directory; + } + else { + $download_path = $download_base; + } - // Create the path if it does not exist. - if (!is_dir($path)) { - drush_op('mkdir', $path); - drush_log(dt('Directory @path was created', array('@path' => $path)), 'notice'); - } + // Determine the install location for the project. User provided + // --destination has preference. + $destination = drush_get_option('destination'); + if (!empty($destination)) { + if (!file_exists($destination)) { + drush_mkdir($destination); + } + $install_location = realpath($destination); + } + else { + /** @see _pm_download_destination_lookup() */ + // _pm_download_destination_lookup() pluralizes the passed type by + // appending an s. + // This relies on the fact that there is no library named 'contrib'. + // @todo Request that this be turned into a proper API upstream. + $install_location = _pm_download_destination('librarie'); + } - // Set the directory to the download location. - $olddir = getcwd(); - chdir($path); + // @todo Consider invoking a hook similar to + // hook_drush_pm_download_destination_alter(). - $filename = basename(COLORBOX_DOWNLOAD_URI); - $dirname = basename(COLORBOX_DOWNLOAD_URI, '.zip'); + // @todo Consider adding version-control support similar to pm-download. - // Remove any existing Colorbox plugin directory - if (is_dir($dirname)) { - drush_log(dt('A existing Colorbox plugin was overwritten at @path', array('@path' => $path)), 'notice'); - } - // Remove any existing Colorbox plugin zip archive - if (is_file($filename)) { - drush_op('unlink', $filename); - } + $install_location .= '/' . $machine_name; - // Download the zip archive - if (!drush_shell_exec('wget '. COLORBOX_DOWNLOAD_URI)) { - drush_shell_exec('curl -O '. COLORBOX_DOWNLOAD_URI); - } + // Check if install location already exists. + if (is_dir($install_location)) { + if (drush_confirm(dt('Install location !location already exists. Do you want to overwrite it?', array('!location' => $install_location)))) { + drush_delete_dir($install_location, TRUE); + } + else { + drush_log(dt("Skip installation of !project to !dest.", array('!project' => $library['machine name'], '!dest' => $install_location)), 'warning'); + continue; + } + } - if (is_file($filename)) { - // Decompress the zip archive - drush_shell_exec('unzip -qq -o '. $filename); - // Remove the zip archive - drush_op('unlink', $filename); - } + // Copy the project to the install location. + if (drush_op('_drush_recursive_copy', $download_path, $install_location)) { + drush_log(dt("Library !project downloaded to !dest.", array('!project' => $machine_name, '!dest' => $install_location)), 'success'); - // Set working directory back to the previous working directory. - chdir($olddir); + // @todo Consider invoking a hook similar to + // hook_drush_pm_post_download(). - if (is_dir($path .'/'. $dirname)) { - drush_log(dt('Colorbox plugin has been downloaded to @path', array('@path' => $path)), 'success'); - } - else { - drush_log(dt('Drush was unable to download the Colorbox plugin to @path', array('@path' => $path)), 'error'); + // @todo Support printing release notes. + } + else { + // We don't `return` here in order to proceed with downloading additional projects. + drush_set_error('DRUSH_PM_DOWNLOAD_FAILED', dt("Project !project could not be downloaded to !dest.", array('!project' => $machine_name, '!dest' => $install_location))); + } + + // @todo Consider adding notify support. } } diff --git a/site/sites/all/modules/libraries/libraries.info b/site/sites/all/modules/libraries/libraries.info index d4b2af3..dcd2d48 100644 --- a/site/sites/all/modules/libraries/libraries.info +++ b/site/sites/all/modules/libraries/libraries.info @@ -1,11 +1,16 @@ name = Libraries description = Allows version-dependent and shared usage of external libraries. core = 7.x -files[] = tests/libraries.test +; We use hook_system_theme_info() which was added in Drupal 7.11 +dependencies[] = system (>=7.11) +files[] = tests/LibrariesAdminWebTest.test +files[] = tests/LibrariesLoadWebTest.test +files[] = tests/LibrariesUnitTest.test +files[] = tests/LibrariesWebTestBase.test -; Information added by drupal.org packaging script on 2013-03-09 -version = "7.x-2.1" +; Information added by Drupal.org packaging script on 2016-05-12 +version = "7.x-2.3" core = "7.x" project = "libraries" -datestamp = "1362848412" +datestamp = "1463077450" diff --git a/site/sites/all/modules/libraries/libraries.install b/site/sites/all/modules/libraries/libraries.install index b210b98..ebc4087 100644 --- a/site/sites/all/modules/libraries/libraries.install +++ b/site/sites/all/modules/libraries/libraries.install @@ -25,3 +25,12 @@ function libraries_update_7200() { db_create_table('cache_libraries', $specs['cache_libraries']); } } + +/** + * Rebuild the class registry. + */ +function libraries_update_7201() { + // The tests were split from a single libraries.test file into multiple files + // during the 7.x-2.x cycle. + registry_rebuild(); +} diff --git a/site/sites/all/modules/libraries/libraries.module b/site/sites/all/modules/libraries/libraries.module index 687fa29..4827525 100644 --- a/site/sites/all/modules/libraries/libraries.module +++ b/site/sites/all/modules/libraries/libraries.module @@ -9,6 +9,14 @@ * Implements hook_flush_caches(). */ function libraries_flush_caches() { + // Clear static caches. + // We don't clear the 'libraries_load' static cache, because that could result + // in libraries that had been loaded before the cache flushing to be loaded + // again afterwards. + foreach (array('libraries_get_path', 'libraries_info') as $name) { + drupal_static_reset($name); + } + // @todo When upgrading from 1.x, update.php attempts to flush caches before // the cache table has been created. // @see http://drupal.org/node/1477932 @@ -25,7 +33,7 @@ function libraries_flush_caches() { * @param $base_path * Whether to prefix the resulting path with base_path(). * - * @return + * @return string * The path to the specified library or FALSE if the library wasn't found. * * @ingroup libraries @@ -59,7 +67,7 @@ function libraries_get_path($name, $base_path = FALSE) { * in both the site-wide directory and site-specific directory, only the * site-specific version will be listed. * - * @return + * @return array * A list of library directories. * * @ingroup libraries @@ -114,7 +122,7 @@ function libraries_get_libraries() { * - sites/$sitename/libraries * - any directories specified via hook_libraries_info_file_paths() * - * @return + * @return array * An array of info files, keyed by library name. The values are the paths of * the files. */ @@ -133,7 +141,7 @@ function libraries_scan_info_files() { $files = array(); foreach ($directories as $dir) { if (file_exists($dir)) { - $files = array_merge($files, file_scan_directory($dir, '@^[a-z0-9._-]+\.libraries\.info$@', array( + $files = array_merge($files, file_scan_directory($dir, '@^[A-Za-z0-9._-]+\.libraries\.info$@', array( 'key' => 'name', 'recurse' => FALSE, ))); @@ -158,6 +166,13 @@ function libraries_scan_info_files() { * An array of library information, passed by reference. */ function libraries_invoke($group, &$library) { + // When introducing new callback groups in newer versions, stale cached + // library information somehow reaches this point during the database update + // before clearing the library cache. + if (empty($library['callbacks'][$group])) { + return; + } + foreach ($library['callbacks'][$group] as $callback) { libraries_traverse_library($library, $callback); } @@ -333,27 +348,31 @@ function &libraries_info($name = NULL) { if (!isset($libraries)) { $libraries = array(); - // Gather information from hook_libraries_info(). + + // Gather information from hook_libraries_info() in enabled modules. foreach (module_implements('libraries_info') as $module) { foreach (module_invoke($module, 'libraries_info') as $machine_name => $properties) { + $properties['info type'] = 'module'; $properties['module'] = $module; $libraries[$machine_name] = $properties; } } + // Gather information from hook_libraries_info() in enabled themes. - // @see drupal_alter() - global $theme, $base_theme_info; - if (isset($theme)) { - $theme_keys = array(); - foreach ($base_theme_info as $base) { - $theme_keys[] = $base->name; - } - $theme_keys[] = $theme; - foreach ($theme_keys as $theme_key) { - $function = $theme_key . '_' . 'libraries_info'; + $themes = array(); + foreach (list_themes() as $theme_name => $theme_info) { + if ($theme_info->status && file_exists(drupal_get_path('theme', $theme_name) . '/template.php')) { + // Collect a list of viable themes for re-use when calling the alter + // hook. + $themes[] = $theme_name; + + include_once drupal_get_path('theme', $theme_name) . '/template.php'; + + $function = $theme_name . '_libraries_info'; if (function_exists($function)) { foreach ($function() as $machine_name => $properties) { - $properties['theme'] = $theme_key; + $properties['info type'] = 'theme'; + $properties['theme'] = $theme_name; $libraries[$machine_name] = $properties; } } @@ -364,6 +383,7 @@ function &libraries_info($name = NULL) { // .info files override module definitions. foreach (libraries_scan_info_files() as $machine_name => $file) { $properties = drupal_parse_info_file($file->uri); + $properties['info type'] = 'info file'; $properties['info file'] = $file->uri; $libraries[$machine_name] = $properties; } @@ -373,8 +393,20 @@ function &libraries_info($name = NULL) { libraries_info_defaults($properties, $machine_name); } - // Allow modules to alter the registered libraries. - drupal_alter('libraries_info', $libraries); + // Allow enabled modules and themes to alter the registered libraries. + // drupal_alter() only takes the currently active theme into account, not + // all enabled themes. + foreach (module_implements('libraries_info_alter') as $module) { + $function = $module . '_libraries_info_alter'; + $function($libraries); + } + foreach ($themes as $theme) { + $function = $theme . '_libraries_info_alter'; + // The template.php file was included above. + if (function_exists($function)) { + $function($libraries); + } + } // Invoke callbacks in the 'info' group. foreach ($libraries as &$properties) { @@ -397,17 +429,21 @@ function &libraries_info($name = NULL) { /** * Applies default properties to a library definition. * - * @library + * @param array $library * An array of library information, passed by reference. - * @name + * @param string $name * The machine name of the passed-in library. + * + * @return array + * The library information array with defaults populated. */ -function libraries_info_defaults(&$library, $name) { +function libraries_info_defaults(array &$library, $name) { $library += array( 'machine name' => $name, 'name' => $name, 'vendor url' => '', 'download url' => '', + 'download file url' => '', 'path' => '', 'library path' => NULL, 'version callback' => 'libraries_get_version', @@ -418,6 +454,8 @@ function libraries_info_defaults(&$library, $name) { 'versions' => array(), 'integration files' => array(), 'callbacks' => array(), + // @todo Remove in 7.x-3.x + 'post-load integration files' => FALSE, ); $library['callbacks'] += array( 'info' => array(), @@ -438,12 +476,15 @@ function libraries_info_defaults(&$library, $name) { /** * Tries to detect a library and its installed version. * - * @param $name - * The machine name of a library to return registered information for. + * @param string $name + * (optional) The machine name of a library to detect and return registered + * information for. If omitted, information about all registered libraries is + * returned. * * @return array|false - * An associative array containing registered information for the library - * specified by $name, or FALSE if the library $name is not registered. + * An associative array containing registered information for all libraries, + * the registered information for the library specified by $name, or FALSE if + * the library $name is not registered. * In addition to the keys returned by libraries_info(), the following keys * are contained: * - installed: A boolean indicating whether the library is installed. Note @@ -457,13 +498,23 @@ function libraries_info_defaults(&$library, $name) { * * @see libraries_info() */ -function libraries_detect($name) { +function libraries_detect($name = NULL) { + if (!isset($name)) { + $libraries = &libraries_info(); + foreach ($libraries as $name => $library) { + libraries_detect($name); + } + return $libraries; + } + // Re-use the statically cached value of libraries_info() to save memory. $library = &libraries_info($name); + // Exit early if the library was not found. if ($library === FALSE) { return $library; } + // If 'installed' is set, library detection ran already. if (isset($library['installed'])) { return $library; @@ -495,7 +546,7 @@ function libraries_detect($name) { $library['version'] = call_user_func_array($library['version callback'], array_merge(array($library), $library['version arguments'])); } else { - $library['version'] = $library['version callback']($library, $library['version arguments']); + $library['version'] = call_user_func($library['version callback'], $library, $library['version arguments']); } if (empty($library['version'])) { $library['error'] = 'not detected'; @@ -600,6 +651,12 @@ function libraries_load($name, $variant = NULL) { cache_set($name, $library, 'cache_libraries'); } + // Exit early if the library was not found. + if ($library === FALSE) { + $loaded[$name] = $library; + return $loaded[$name]; + } + // If a variant was specified, override the top-level properties with the // variant properties. if (isset($variant)) { @@ -651,14 +708,35 @@ function libraries_load($name, $variant = NULL) { * The number of loaded files. */ function libraries_load_files($library) { + // As this key was added after 7.x-2.1 cached library structures might not + // have it. + $library += array('post-load integration files' => FALSE); + // Load integration files. - if (!empty($library['integration files'])) { - foreach ($library['integration files'] as $module => $files) { - libraries_load_files(array( - 'files' => $files, - 'path' => '', - 'library path' => drupal_get_path('module', $module), - )); + if (!$library['post-load integration files'] && !empty($library['integration files'])) { + $enabled_themes = array(); + foreach (list_themes() as $theme_name => $theme) { + if ($theme->status) { + $enabled_themes[] = $theme_name; + } + } + foreach ($library['integration files'] as $provider => $files) { + if (module_exists($provider)) { + libraries_load_files(array( + 'files' => $files, + 'path' => '', + 'library path' => drupal_get_path('module', $provider), + 'post-load integration files' => FALSE, + )); + } + elseif (in_array($provider, $enabled_themes)) { + libraries_load_files(array( + 'files' => $files, + 'path' => '', + 'library path' => drupal_get_path('theme', $provider), + 'post-load integration files' => FALSE, + )); + } } } @@ -706,15 +784,60 @@ function libraries_load_files($library) { foreach ($library['files']['php'] as $file => $array) { $file_path = DRUPAL_ROOT . '/' . $path . '/' . $file; if (file_exists($file_path)) { - require_once $file_path; + _libraries_require_once($file_path); $count++; } } } + // Load integration files. + if ($library['post-load integration files'] && !empty($library['integration files'])) { + $enabled_themes = array(); + foreach (list_themes() as $theme_name => $theme) { + if ($theme->status) { + $enabled_themes[] = $theme_name; + } + } + foreach ($library['integration files'] as $provider => $files) { + if (module_exists($provider)) { + libraries_load_files(array( + 'files' => $files, + 'path' => '', + 'library path' => drupal_get_path('module', $provider), + 'post-load integration files' => FALSE, + )); + } + elseif (in_array($provider, $enabled_themes)) { + libraries_load_files(array( + 'files' => $files, + 'path' => '', + 'library path' => drupal_get_path('theme', $provider), + 'post-load integration files' => FALSE, + )); + } + } + } + return $count; } +/** + * Wrapper function for require_once. + * + * A library file could set a $path variable in file scope. Requiring such a + * file directly in libraries_load_files() would lead to the local $path + * variable being overridden after the require_once statement. This would + * break loading further files. Therefore we use this trivial wrapper which has + * no local state that can be tampered with. + * + * @param $file_path + * The file path of the file to require. + */ +function _libraries_require_once($file_path) { + require_once $file_path; +} + + /** * Gets the version information from an arbitrary library. * @@ -763,3 +886,61 @@ function libraries_get_version($library, $options) { } fclose($file); } + +/** + * Implements hook_help(). + */ +function libraries_help($path, $arg) { + switch ($path) { + case 'admin/reports/libraries': + return t('Click on a library for a status report or detailed installation instructions in case the library is not installed correctly.'); + } +} + +/** + * Implements hook_menu(). + */ +function libraries_menu() { + $items = array(); + $items['admin/reports/libraries'] = array( + 'title' => 'Libraries', + 'description' => 'An overview of libraries installed on this site.', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('libraries_admin_overview'), + 'access arguments' => array('access site reports'), + 'file' => 'libraries.admin.inc' + ); + $items['admin/reports/libraries/%libraries_ui'] = array( + 'title' => 'Library status report', + 'description' => 'Status overview for a single library', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('libraries_admin_library_status_form', 3), + 'access arguments' => array('access site reports'), + 'file' => 'libraries.admin.inc' + ); + return $items; +} + +/** + * Loads library information for display in the user interface. + * + * This can be used as a menu loader function by specifying a '%libraries_ui' + * parameter in a path. + * + * We do not use libraries_load() (and, thus, a '%libraries' parameter) directly + * for displaying library information in the user interface as we do not want + * the library files to be loaded. + * + * @param string $name + * The machine name of a library to return registered information for. + * + * @return array|false + * An associative array containing registered information for the library + * specified by $name, or FALSE if the library $name is not registered. + * + * @see libraries_detect() + * @see libraries_menu() + */ +function libraries_ui_load($name) { + return libraries_detect($name); +} diff --git a/site/sites/all/modules/libraries/tests/LibrariesAdminWebTest.test b/site/sites/all/modules/libraries/tests/LibrariesAdminWebTest.test new file mode 100644 index 0000000..a4d2188 --- /dev/null +++ b/site/sites/all/modules/libraries/tests/LibrariesAdminWebTest.test @@ -0,0 +1,119 @@ + 'Libraries administration', + 'description' => 'Tests the administrative interface for libraries.', + 'group' => 'Libraries API', + ); + } + + /** + * Tests the libraries report at /admin/reports/libraries. + */ + public function testLibrariesReportOverview() { + $this->getWithPermissions(array('access site reports'), 'admin/reports/libraries'); + $this->assertRaw('Libraries'); + + // Make sure that all the libraries are listed. + $libraries = libraries_info(); + $this->assertTrue($libraries); + foreach ($libraries as $library) { + $this->assertText($library['name']); + $this->assertLinkByHref('admin/reports/libraries/' . $library['machine name']); + } + + // Make sure that all possible statuses are displayed. + $this->assertText('OK'); + $this->assertText('Not found'); + $this->assertText('Not detected'); + $this->assertText('Not supported'); + $this->assertText('Missing dependency'); + $this->assertText('Incompatible dependency'); + + // Make sure that the providers are displayed. + $this->assertRaw('Libraries test module module'); + $this->assertRaw('Libraries test theme theme'); + $this->assertRaw('example_info_file.libraries.info info file'); + + // Make sure that homepage and download links are displayed. + $this->assertLinkByHref('http://example.com'); + $this->assertLinkByHref('http://example.com/download'); + } + + /** + * Tests the libraries report for an installed library. + */ + public function testLibrariesReportInstalled() { + $this->getWithPermissions(array('access site reports'), 'admin/reports/libraries/example_files'); + $this->assertRaw('Status report for library Example files'); + $this->assertRaw('The Example files library is installed correctly.'); + // Check that the information in the status report is displayed. + $this->assertText('Example files'); + $this->assertText('example_files'); + $this->assertRaw('Libraries test module module'); + $this->assertText(drupal_get_path('module', 'libraries') . '/tests/libraries/example'); + $this->assertText('1'); + } + + /** + * Tests the libraries report for a missing library. + */ + public function testLibrariesReportMissing() { + $this->getWithPermissions(array('access site reports'), 'admin/reports/libraries/example_missing'); + $this->assertRaw('Status report for library Example missing'); + $this->assertRaw('The Example missing library could not be found.'); + // Check that the download link is being displayed. + $this->assertLinkByHref('http://example.com/download'); + } + + + /** + * Tests the libraries report for a missing library. + */ + public function testLibrariesReportNotDetected() { + $this->getWithPermissions(array('access site reports'), 'admin/reports/libraries/example_undetected_version'); + $this->assertRaw('Status report for library Example undetected version'); + $this->assertRaw('The version of the Example undetected version library could not be detected.'); + } + + /** + * Tests the libraries report for a missing library. + */ + public function testLibrariesReportNotSupported() { + $this->getWithPermissions(array('access site reports'), 'admin/reports/libraries/example_unsupported_version'); + $this->assertRaw('Status report for library Example unsupported version'); + $this->assertRaw('The installed version 1 of the Example unsupported version library is not supported.'); + // Check that the download link is being displayed. + $this->assertLinkByHref('http://example.com/download'); + } + +} diff --git a/site/sites/all/modules/libraries/tests/libraries.test b/site/sites/all/modules/libraries/tests/LibrariesLoadWebTest.test similarity index 78% rename from site/sites/all/modules/libraries/tests/libraries.test rename to site/sites/all/modules/libraries/tests/LibrariesLoadWebTest.test index 1770162..7c4fe51 100644 --- a/site/sites/all/modules/libraries/tests/libraries.test +++ b/site/sites/all/modules/libraries/tests/LibrariesLoadWebTest.test @@ -2,67 +2,29 @@ /** * @file - * Tests for Libraries API. + * Contains LibrariesLoadWebTest. + * + * Simpletest automatically discovers test files using PSR-4. We cannot, + * however, declare a namespace for this class, as that would require PHP 5.3. + * To prepare the PHP 5.3 requirement and the usage of PSR-4 in 7.x-3.x, we + * place the test files in the correct directory already, but for now register + * them explicitly in libraries.info */ /** - * Tests basic Libraries API functions. + * Tests basic detection and loading of libraries. */ -class LibrariesUnitTestCase extends DrupalUnitTestCase { - public static function getInfo() { - return array( - 'name' => 'Libraries API unit tests', - 'description' => 'Tests basic functions provided by Libraries API.', - 'group' => 'Libraries API', - ); - } - - function setUp() { - drupal_load('module', 'libraries'); - parent::setUp(); - } +class LibrariesLoadWebTest extends LibrariesWebTestBase { /** - * Tests libraries_get_path(). - */ - function testLibrariesGetPath() { - // Note that, even though libraries_get_path() doesn't find the 'example' - // library, we are able to make it 'installed' by specifying the 'library - // path' up-front. This is only used for testing purposed and is strongly - // discouraged as it defeats the purpose of Libraries API in the first - // place. - $this->assertEqual(libraries_get_path('example'), FALSE, 'libraries_get_path() returns FALSE for a missing library.'); - } - - /** - * Tests libraries_prepare_files(). + * Provides metadata about this test. + * + * @return array + * An array of test metadata with the following keys: + * - name: The name of the test. + * - description: The description of the test. + * - group: The group of the test. */ - function testLibrariesPrepareFiles() { - $expected = array( - 'files' => array( - 'js' => array('example.js' => array()), - 'css' => array('example.css' => array()), - 'php' => array('example.php' => array()), - ), - ); - $library = array( - 'files' => array( - 'js' => array('example.js'), - 'css' => array('example.css'), - 'php' => array('example.php'), - ), - ); - libraries_prepare_files($library, NULL, NULL); - $this->assertEqual($expected, $library, 'libraries_prepare_files() works correctly.'); - } -} - -/** - * Tests basic detection and loading of libraries. - */ -class LibrariesTestCase extends DrupalWebTestCase { - protected $profile = 'testing'; - public static function getInfo() { return array( 'name' => 'Libraries detection and loading', @@ -71,14 +33,10 @@ class LibrariesTestCase extends DrupalWebTestCase { ); } - function setUp() { - parent::setUp('libraries', 'libraries_test'); - } - /** * Tests libraries_detect_dependencies(). */ - function testLibrariesDetectDependencies() { + public function testLibrariesDetectDependencies() { $library = array( 'name' => 'Example', 'dependencies' => array('example_missing'), @@ -131,6 +89,7 @@ class LibrariesTestCase extends DrupalWebTestCase { // FALSE for missing or incompatible dependencies. $library['installed'] = TRUE; libraries_detect_dependencies($library); + $this->verbose('Library:
                                ' . var_export($library, TRUE) . '
                                '); $this->assertTrue($library['installed'], "libraries_detect_dependencies() detects compatible version string: '$version_string' is compatible with '$version'"); } foreach ($incompatible as $version_string) { @@ -138,6 +97,7 @@ class LibrariesTestCase extends DrupalWebTestCase { $library['installed'] = TRUE; unset($library['error'], $library['error message']); libraries_detect_dependencies($library); + $this->verbose('Library:
                                ' . var_export($library, TRUE) . '
                                '); $this->assertEqual($library['error'], 'incompatible dependency', "libraries_detect_dependencies() detects incompatible version strings: '$version_string' is incompatible with '$version'"); } // Instead of repeating this assertion for each version string, we just @@ -155,9 +115,9 @@ class LibrariesTestCase extends DrupalWebTestCase { /** * Tests libraries_scan_info_files(). */ - function testLibrariesScanInfoFiles() { + public function testLibrariesScanInfoFiles() { $expected = array('example_info_file' => (object) array( - 'uri' => drupal_get_path('module', 'libraries') . '/tests/example/example_info_file.libraries.info', + 'uri' => drupal_get_path('module', 'libraries') . '/tests/libraries/example_info_file.libraries.info', 'filename' => 'example_info_file.libraries.info', 'name' => 'example_info_file.libraries', )); @@ -168,18 +128,34 @@ class LibrariesTestCase extends DrupalWebTestCase { /** * Tests libraries_info(). */ - function testLibrariesInfo() { + public function testLibrariesInfo() { + // Test that modules can provide and alter library information. + $info = libraries_info(); + $this->assertTrue(isset($info['example_module'])); + $this->verbose('Library:
                                ' . var_export($info['example_module'], TRUE) . '
                                '); + $this->assertEqual($info['example_module']['info type'], 'module'); + $this->assertEqual($info['example_module']['module'], 'libraries_test_module'); + $this->assertTrue($info['example_module']['module_altered']); + + // Test that themes can provide and alter library information. + $this->assertTrue(isset($info['example_theme'])); + $this->verbose('Library:
                                ' . var_export($info['example_theme'], TRUE) . '
                                '); + $this->assertEqual($info['example_theme']['info type'], 'theme'); + $this->assertEqual($info['example_theme']['theme'], 'libraries_test_theme'); + $this->assertTrue($info['example_theme']['theme_altered']); + // Test that library information is found correctly. $expected = array( 'name' => 'Example files', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', 'files' => array( 'js' => array('example_1.js' => array()), 'css' => array('example_1.css' => array()), 'php' => array('example_1.php' => array()), ), - 'module' => 'libraries_test', + 'info type' => 'module', + 'module' => 'libraries_test_module', ); libraries_info_defaults($expected, 'example_files'); $library = libraries_info('example_files'); @@ -190,7 +166,8 @@ class LibrariesTestCase extends DrupalWebTestCase { // Test a library specified with an .info file gets detected. $expected = array( 'name' => 'Example info file', - 'info file' => drupal_get_path('module', 'libraries_test') . '/example/example_info_file.libraries.info', + 'info type' => 'info file', + 'info file' => drupal_get_path('module', 'libraries') . '/tests/libraries/example_info_file.libraries.info', ); libraries_info_defaults($expected, 'example_info_file'); $library = libraries_info('example_info_file'); @@ -206,7 +183,7 @@ class LibrariesTestCase extends DrupalWebTestCase { /** * Tests libraries_detect(). */ - function testLibrariesDetect() { + public function testLibrariesDetect() { // Test missing library. $library = libraries_detect('example_missing'); $this->verbose('
                                ' . var_export($library, TRUE) . '
                                '); @@ -286,10 +263,24 @@ class LibrariesTestCase extends DrupalWebTestCase { $this->assertEqual($library['variants']['example_variant']['installed'], TRUE, 'Existing variant found.'); } + /** + * Tests libraries_detect() without a $name parameter. + */ + public function testLibrariesDetectAll() { + // Test that an array with all library information is returned and that the + // libraries are properly detected. + $libraries = libraries_detect(); + $this->verbose('
                                ' . var_export($libraries, TRUE) . '
                                '); + $this->assertEqual($libraries['example_missing']['error'], 'not found'); + $this->assertEqual($libraries['example_undetected_version']['error'], 'not detected'); + $this->assertEqual($libraries['example_unsupported_version']['error'], 'not supported'); + $this->assertEqual($libraries['example_supported_version']['installed'], TRUE); + } + /** * Tests libraries_load(). */ - function testLibrariesLoad() { + public function testLibrariesLoad() { // Test dependencies. $library = libraries_load('example_dependency_missing'); $this->verbose('
                                ' . var_export($library, TRUE) . '
                                '); @@ -303,15 +294,21 @@ class LibrariesTestCase extends DrupalWebTestCase { $loaded = &drupal_static('libraries_load'); $this->verbose('
                                ' . var_export($loaded, TRUE) . '
                                '); $this->assertEqual($loaded['example_dependency']['loaded'], 1, 'Dependency library is also loaded'); + + // Test that PHP files that have a local $path variable do not break library + // loading. + // @see _libraries_require_once() + $library = libraries_load('example_path_variable_override'); + $this->assertEqual($library['loaded'], 2, 'PHP files cannot break library loading.'); } /** * Tests the applying of callbacks. */ - function testCallbacks() { + public function testCallbacks() { $expected = array( 'name' => 'Example callback', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', 'versions' => array( '1' => array( @@ -344,12 +341,12 @@ class LibrariesTestCase extends DrupalWebTestCase { ), ), 'callbacks' => array( - 'info' => array('_libraries_test_info_callback'), - 'pre-detect' => array('_libraries_test_pre_detect_callback'), - 'post-detect' => array('_libraries_test_post_detect_callback'), - 'pre-dependencies-load' => array('_libraries_test_pre_dependencies_load_callback'), - 'pre-load' => array('_libraries_test_pre_load_callback'), - 'post-load' => array('_libraries_test_post_load_callback'), + 'info' => array('_libraries_test_module_info_callback'), + 'pre-detect' => array('_libraries_test_module_pre_detect_callback'), + 'post-detect' => array('_libraries_test_module_post_detect_callback'), + 'pre-dependencies-load' => array('_libraries_test_module_pre_dependencies_load_callback'), + 'pre-load' => array('_libraries_test_module_pre_load_callback'), + 'post-load' => array('_libraries_test_module_post_load_callback'), ), 'info callback' => 'not applied', 'pre-detect callback' => 'not applied', @@ -357,7 +354,8 @@ class LibrariesTestCase extends DrupalWebTestCase { 'pre-dependencies-load callback' => 'not applied', 'pre-load callback' => 'not applied', 'post-load callback' => 'not applied', - 'module' => 'libraries_test', + 'info type' => 'module', + 'module' => 'libraries_test_module', ); libraries_info_defaults($expected, 'example_callback'); @@ -424,37 +422,46 @@ class LibrariesTestCase extends DrupalWebTestCase { * We check for JavaScript and CSS files directly in the DOM and add a list of * included PHP files manually to the page output. * - * @see _libraries_test_load() + * @see _libraries_test_module_load() */ - function testLibrariesOutput() { + public function testLibrariesOutput() { // Test loading of a simple library with a top-level files property. - $this->drupalGet('libraries_test/files'); + $this->drupalGet('libraries-test-module/files'); $this->assertLibraryFiles('example_1', 'File loading'); // Test loading of integration files. - $this->drupalGet('libraries_test/integration_files'); - $this->assertRaw('libraries_test.js', 'Integration file loading: libraries_test.js found'); - $this->assertRaw('libraries_test.css', 'Integration file loading: libraries_test.css found'); - $this->assertRaw('libraries_test.inc', 'Integration file loading: libraries_test.inc found'); + $this->drupalGet('libraries-test-module/module-integration-files'); + $this->assertRaw('libraries_test_module.js', 'Integration file loading: libraries_test_module.js found'); + $this->assertRaw('libraries_test_module.css', 'Integration file loading: libraries_test_module.css found'); + $this->assertRaw('libraries_test_module.inc', 'Integration file loading: libraries_test_module.inc found'); + $this->drupalGet('libraries-test-module/theme-integration-files'); + $this->assertRaw('libraries_test_theme.js', 'Integration file loading: libraries_test_theme.js found'); + $this->assertRaw('libraries_test_theme.css', 'Integration file loading: libraries_test_theme.css found'); + $this->assertRaw('libraries_test_theme.inc', 'Integration file loading: libraries_test_theme.inc found'); + + // Test loading of post-load integration files. + $this->drupalGet('libraries-test-module/module-integration-files-post-load'); + // If the files were not loaded correctly, a fatal error occurs. + $this->assertResponse(200, 'Post-load integration files are loaded correctly.'); // Test version overloading. - $this->drupalGet('libraries_test/versions'); + $this->drupalGet('libraries-test-module/versions'); $this->assertLibraryFiles('example_2', 'Version overloading'); // Test variant loading. - $this->drupalGet('libraries_test/variant'); + $this->drupalGet('libraries-test-module/variant'); $this->assertLibraryFiles('example_3', 'Variant loading'); // Test version overloading and variant loading. - $this->drupalGet('libraries_test/versions_and_variants'); + $this->drupalGet('libraries-test-module/versions-and-variants'); $this->assertLibraryFiles('example_4', 'Concurrent version and variant overloading'); // Test caching. - variable_set('libraries_test_cache', TRUE); + variable_set('libraries_test_module_cache', TRUE); cache_clear_all('example_callback', 'cache_libraries'); // When the library information is not cached, all callback groups should be // invoked. - $this->drupalGet('libraries_test/cache'); + $this->drupalGet('libraries-test-module/cache'); $this->assertRaw('The info callback group was invoked.', 'Info callback invoked for uncached libraries.'); $this->assertRaw('The pre-detect callback group was invoked.', 'Pre-detect callback invoked for uncached libraries.'); $this->assertRaw('The post-detect callback group was invoked.', 'Post-detect callback invoked for uncached libraries.'); @@ -462,13 +469,13 @@ class LibrariesTestCase extends DrupalWebTestCase { $this->assertRaw('The post-load callback group was invoked.', 'Post-load callback invoked for uncached libraries.'); // When the library information is cached only the 'pre-load' and // 'post-load' callback groups should be invoked. - $this->drupalGet('libraries_test/cache'); + $this->drupalGet('libraries-test-module/cache'); $this->assertNoRaw('The info callback group was not invoked.', 'Info callback not invoked for cached libraries.'); $this->assertNoRaw('The pre-detect callback group was not invoked.', 'Pre-detect callback not invoked for cached libraries.'); $this->assertNoRaw('The post-detect callback group was not invoked.', 'Post-detect callback not invoked for cached libraries.'); $this->assertRaw('The pre-load callback group was invoked.', 'Pre-load callback invoked for cached libraries.'); $this->assertRaw('The post-load callback group was invoked.', 'Post-load callback invoked for cached libraries.'); - variable_set('libraries_test_cache', FALSE); + variable_set('libraries_test_module_cache', FALSE); } /** @@ -491,7 +498,7 @@ class LibrariesTestCase extends DrupalWebTestCase { * (optional) The expected file extensions of $name. Defaults to * array('js', 'css', 'php'). */ - function assertLibraryFiles($name, $label = '', $extensions = array('js', 'css', 'php')) { + public function assertLibraryFiles($name, $label = '', $extensions = array('js', 'css', 'php')) { $label = ($label !== '' ? "$label: " : ''); // Test that the wrong files are not loaded... @@ -516,7 +523,7 @@ class LibrariesTestCase extends DrupalWebTestCase { foreach ($names as $name => $expected) { foreach ($extensions as $extension) { - $filepath = drupal_get_path('module', 'libraries_test') . "/example/$name.$extension"; + $filepath = drupal_get_path('module', 'libraries') . "/tests/libraries/example/$name.$extension"; // JavaScript and CSS files appear as full URLs and with an appended // query string. if (in_array($extension, array('js', 'css'))) { @@ -534,4 +541,3 @@ class LibrariesTestCase extends DrupalWebTestCase { } } - diff --git a/site/sites/all/modules/libraries/tests/LibrariesUnitTest.test b/site/sites/all/modules/libraries/tests/LibrariesUnitTest.test new file mode 100644 index 0000000..cd5d30a --- /dev/null +++ b/site/sites/all/modules/libraries/tests/LibrariesUnitTest.test @@ -0,0 +1,78 @@ + 'Libraries API unit tests', + 'description' => 'Tests basic functions provided by Libraries API.', + 'group' => 'Libraries API', + ); + } + + /** + * {@inheritdoc} + */ + protected function setUp() { + drupal_load('module', 'libraries'); + parent::setUp(); + } + + /** + * Tests libraries_get_path(). + */ + public function testLibrariesGetPath() { + // Note that, even though libraries_get_path() doesn't find the 'example' + // library, we are able to make it 'installed' by specifying the 'library + // path' up-front. This is only used for testing purposed and is strongly + // discouraged as it defeats the purpose of Libraries API in the first + // place. + $this->assertEqual(libraries_get_path('example'), FALSE, 'libraries_get_path() returns FALSE for a missing library.'); + } + + /** + * Tests libraries_prepare_files(). + */ + public function testLibrariesPrepareFiles() { + $expected = array( + 'files' => array( + 'js' => array('example.js' => array()), + 'css' => array('example.css' => array()), + 'php' => array('example.php' => array()), + ), + ); + $library = array( + 'files' => array( + 'js' => array('example.js'), + 'css' => array('example.css'), + 'php' => array('example.php'), + ), + ); + libraries_prepare_files($library, NULL, NULL); + $this->assertEqual($expected, $library, 'libraries_prepare_files() works correctly.'); + } + +} diff --git a/site/sites/all/modules/libraries/tests/LibrariesWebTestBase.test b/site/sites/all/modules/libraries/tests/LibrariesWebTestBase.test new file mode 100644 index 0000000..094534c --- /dev/null +++ b/site/sites/all/modules/libraries/tests/LibrariesWebTestBase.test @@ -0,0 +1,64 @@ +drupalGetContent(). + * + * @see \DrupalWebTestCase::drupalGet() + * @see \DrupalWebTestCase::drupalCreateUser() + */ + protected function getWithPermissions(array $permissions, $path, array $options = array(), array $headers = array()) { + $this->drupalGet($path, $options, $headers); + $this->assertResponse(403); + + $this->drupalLogin($this->drupalCreateUser($permissions)); + $this->drupalGet($path, $options, $headers); + $this->assertResponse(200); + } + +} diff --git a/site/sites/all/modules/libraries/tests/example/example_1.css b/site/sites/all/modules/libraries/tests/example/example_1.css deleted file mode 100644 index a732bda..0000000 --- a/site/sites/all/modules/libraries/tests/example/example_1.css +++ /dev/null @@ -1,11 +0,0 @@ - -/** - * @file - * Test CSS file for Libraries loading. - * - * Color the 'libraries-test-css' div red. See README.txt for more information. - */ - -.libraries-test-css { - color: red; -} diff --git a/site/sites/all/modules/libraries/tests/example/example_2.css b/site/sites/all/modules/libraries/tests/example/example_2.css deleted file mode 100644 index c8f9289..0000000 --- a/site/sites/all/modules/libraries/tests/example/example_2.css +++ /dev/null @@ -1,11 +0,0 @@ - -/** - * @file - * Test CSS file for Libraries loading. - * - * Color the 'libraries-test-css' div green. See README.txt for more information. - */ - -.libraries-test-css { - color: green; -} diff --git a/site/sites/all/modules/libraries/tests/example/example_3.css b/site/sites/all/modules/libraries/tests/example/example_3.css deleted file mode 100644 index ffef054..0000000 --- a/site/sites/all/modules/libraries/tests/example/example_3.css +++ /dev/null @@ -1,11 +0,0 @@ - -/** - * @file - * Test CSS file for Libraries loading. - * - * Color the 'libraries-test-css' div orange. See README.txt for more information. - */ - -.libraries-test-css { - color: orange; -} diff --git a/site/sites/all/modules/libraries/tests/example/example_4.css b/site/sites/all/modules/libraries/tests/example/example_4.css deleted file mode 100644 index 5030a61..0000000 --- a/site/sites/all/modules/libraries/tests/example/example_4.css +++ /dev/null @@ -1,11 +0,0 @@ - -/** - * @file - * Test CSS file for Libraries loading. - * - * Color the 'libraries-test-css' div blue. See README.txt for more information. - */ - -.libraries-test-css { - color: blue; -} diff --git a/site/sites/all/modules/libraries/tests/example/README.txt b/site/sites/all/modules/libraries/tests/libraries/example/README.txt similarity index 76% rename from site/sites/all/modules/libraries/tests/example/README.txt rename to site/sites/all/modules/libraries/tests/libraries/example/README.txt index e3582c2..6c50a58 100644 --- a/site/sites/all/modules/libraries/tests/example/README.txt +++ b/site/sites/all/modules/libraries/tests/libraries/example/README.txt @@ -14,11 +14,11 @@ CSS and PHP files. place the following text on the page: "If this text shows up, no JavaScript test file was loaded." This text is replaced via JavaScript by a text of the form: - "If this text shows up, [[file] was loaded successfully." + "If this text shows up, [file] was loaded successfully." [file] is either 'example_1.js', 'example_2.js', 'example_3.js', - 'example_4.js' or 'libraries_test.js'. If you have SimpleTest's verbose mode - enabled and see the above text in one of the debug pages, the noted JavaScript - file was loaded successfully. + 'example_4.js' or 'libraries_test_module.js'. If you have SimpleTest's verbose + mode enabled and see the above text in one of the debug pages, the noted + JavaScript file was loaded successfully. - CSS: The filenames of the CSS files are asserted to be in the raw HTML via SimpleTest. Since the filename could appear, for instance, in an error message, this is not very robust. Explicit testing of CSS, though, is not yet @@ -29,7 +29,7 @@ CSS and PHP files. - example_2: green - example_3: orange - example_4: blue - - libraries_test: purple" + - libraries_test_module: purple" If you have SimpleTest's verbose mode enabled, and see the above text in a certain color (i.e. not in black), a CSS file was loaded successfully. Which file depends on the color as referenced in the text above. @@ -37,6 +37,7 @@ CSS and PHP files. PHP files and then checking whether this function was defined using function_exists(). This can be checked programatically with SimpleTest. The loading of integration files is tested with the same method. The integration -files are libraries_test.js, libraries_test.css, libraries_test.inc and are -located in the tests directory alongside libraries_test.module (i.e. they are -not in the same directory as this file). +files are libraries_test_module.js, libraries_test_module.css, +libraries_test_module.inc and are located in the test module's directory +alongside libraries_test_module.info (i.e. they are not in the same directory as +this file). diff --git a/site/sites/all/modules/libraries/tests/libraries/example/example_1.css b/site/sites/all/modules/libraries/tests/libraries/example/example_1.css new file mode 100644 index 0000000..ed9ea3c --- /dev/null +++ b/site/sites/all/modules/libraries/tests/libraries/example/example_1.css @@ -0,0 +1,12 @@ + +/** + * @file + * Test CSS file for Libraries loading. + * + * Color the 'libraries-test-module-css' div red. See README.txt for more + * information. + */ + +.libraries-test-module-css { + color: red; +} diff --git a/site/sites/all/modules/libraries/tests/example/example_1.js b/site/sites/all/modules/libraries/tests/libraries/example/example_1.js similarity index 52% rename from site/sites/all/modules/libraries/tests/example/example_1.js rename to site/sites/all/modules/libraries/tests/libraries/example/example_1.js index 8a1b9a2..659ff0f 100644 --- a/site/sites/all/modules/libraries/tests/example/example_1.js +++ b/site/sites/all/modules/libraries/tests/libraries/example/example_1.js @@ -3,7 +3,7 @@ * @file * Test JavaScript file for Libraries loading. * - * Replace the text in the 'libraries-test-javascript' div. See README.txt for + * Replace the text in the 'libraries-test-module-js' div. See README.txt for * more information. */ @@ -11,7 +11,7 @@ Drupal.behaviors.librariesTest = { attach: function(context, settings) { - $('.libraries-test-javascript').text('If this text shows up, example_1.js was loaded successfully.') + $('.libraries-test-module-js').text('If this text shows up, example_1.js was loaded successfully.') } }; diff --git a/site/sites/all/modules/libraries/tests/libraries/example/example_1.php b/site/sites/all/modules/libraries/tests/libraries/example/example_1.php new file mode 100644 index 0000000..4142e41 --- /dev/null +++ b/site/sites/all/modules/libraries/tests/libraries/example/example_1.php @@ -0,0 +1,15 @@ + 'Example module', + 'module_altered' => FALSE, + ); + // Test library detection. $libraries['example_missing'] = array( 'name' => 'Example missing', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/missing', + // Provide a vendor and download URL to test that the UI links to it. + 'vendor url' => 'http://example.com', + 'download url' => 'http://example.com/download', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/missing', ); $libraries['example_undetected_version'] = array( 'name' => 'Example undetected version', - 'library path' => drupal_get_path('module', 'libraries') . '/tests', - 'version callback' => '_libraries_test_return_version', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', + 'version callback' => '_libraries_test_module_return_version', 'version arguments' => array(FALSE), ); $libraries['example_unsupported_version'] = array( 'name' => 'Example unsupported version', - 'library path' => drupal_get_path('module', 'libraries') . '/tests', - 'version callback' => '_libraries_test_return_version', + // Provide a download URL to test that the UI links to it. + 'download url' => 'http://example.com/download', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', + 'version callback' => '_libraries_test_module_return_version', 'version arguments' => array('1'), 'versions' => array( '2' => array(), ), ); - $libraries['example_supported_version'] = array( 'name' => 'Example supported version', - 'library path' => drupal_get_path('module', 'libraries') . '/tests', - 'version callback' => '_libraries_test_return_version', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', + 'version callback' => '_libraries_test_module_return_version', 'version arguments' => array('1'), 'versions' => array( '1' => array(), @@ -43,7 +53,7 @@ function libraries_test_libraries_info() { // Test the default version callback. $libraries['example_default_version_callback'] = array( 'name' => 'Example default version callback', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version arguments' => array( 'file' => 'README.txt', // Version 1 @@ -55,16 +65,16 @@ function libraries_test_libraries_info() { // Test a multiple-parameter version callback. $libraries['example_multiple_parameter_version_callback'] = array( 'name' => 'Example multiple parameter version callback', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', // Version 1 - 'version callback' => '_libraries_test_get_version', + 'version callback' => '_libraries_test_module_get_version', 'version arguments' => array('README.txt', '/Version (\d+)/', 5), ); // Test a top-level files property. $libraries['example_files'] = array( 'name' => 'Example files', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', 'files' => array( 'js' => array('example_1.js'), @@ -76,23 +86,41 @@ function libraries_test_libraries_info() { // Test loading of integration files. // Normally added by the corresponding module via hook_libraries_info_alter(), // these files should be automatically loaded when the library is loaded. - $libraries['example_integration_files'] = array( - 'name' => 'Example integration files', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + $libraries['example_module_integration_files'] = array( + 'name' => 'Example module integration files', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', + 'version' => '1', + 'integration files' => array( + 'libraries_test_module' => array( + 'js' => array('libraries_test_module.js'), + 'css' => array('libraries_test_module.css'), + 'php' => array('libraries_test_module.inc'), + ), + ), + ); + + // Test loading of integration files after library files. + // We test the correct loading order by calling a function that is defined in + // example_1.php in libraries_test_module_post_load.inc. + $libraries['example_module_integration_files_post_load'] = array( + 'name' => 'Example module post-load integration files', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', + 'files' => array( + 'php' => array('example_1.php'), + ), 'integration files' => array( - 'libraries_test' => array( - 'js' => array('libraries_test.js'), - 'css' => array('libraries_test.css'), - 'php' => array('libraries_test.inc'), + 'libraries_test_module' => array( + 'php' => array('libraries_test_module_post_load.inc'), ), ), + 'post-load integration files' => TRUE, ); // Test version overloading. $libraries['example_versions'] = array( 'name' => 'Example versions', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '2', 'versions' => array( '1' => array( @@ -115,7 +143,7 @@ function libraries_test_libraries_info() { // Test variant detection. $libraries['example_variant_missing'] = array( 'name' => 'Example variant missing', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', 'variants' => array( 'example_variant' => array( @@ -124,7 +152,7 @@ function libraries_test_libraries_info() { 'css' => array('example_3.css'), 'php' => array('example_3.php'), ), - 'variant callback' => '_libraries_test_return_installed', + 'variant callback' => '_libraries_test_module_return_installed', 'variant arguments' => array(FALSE), ), ), @@ -132,7 +160,7 @@ function libraries_test_libraries_info() { $libraries['example_variant'] = array( 'name' => 'Example variant', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', 'variants' => array( 'example_variant' => array( @@ -141,7 +169,7 @@ function libraries_test_libraries_info() { 'css' => array('example_3.css'), 'php' => array('example_3.php'), ), - 'variant callback' => '_libraries_test_return_installed', + 'variant callback' => '_libraries_test_module_return_installed', 'variant arguments' => array(TRUE), ), ), @@ -150,7 +178,7 @@ function libraries_test_libraries_info() { // Test correct behaviour with multiple versions and multiple variants. $libraries['example_versions_and_variants'] = array( 'name' => 'Example versions and variants', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '2', 'versions' => array( '1' => array( @@ -161,7 +189,7 @@ function libraries_test_libraries_info() { 'css' => array('example_1.css'), 'php' => array('example_1.php'), ), - 'variant callback' => '_libraries_test_return_installed', + 'variant callback' => '_libraries_test_module_return_installed', 'variant arguments' => array(TRUE), ), 'example_variant_2' => array( @@ -170,7 +198,7 @@ function libraries_test_libraries_info() { 'css' => array('example_2.css'), 'php' => array('example_2.php'), ), - 'variant callback' => '_libraries_test_return_installed', + 'variant callback' => '_libraries_test_module_return_installed', 'variant arguments' => array(TRUE), ), ), @@ -183,7 +211,7 @@ function libraries_test_libraries_info() { 'css' => array('example_3.css'), 'php' => array('example_3.php'), ), - 'variant callback' => '_libraries_test_return_installed', + 'variant callback' => '_libraries_test_module_return_installed', 'variant arguments' => array(TRUE), ), 'example_variant_2' => array( @@ -192,7 +220,7 @@ function libraries_test_libraries_info() { 'css' => array('example_4.css'), 'php' => array('example_4.php'), ), - 'variant callback' => '_libraries_test_return_installed', + 'variant callback' => '_libraries_test_module_return_installed', 'variant arguments' => array(TRUE), ), ), @@ -206,27 +234,27 @@ function libraries_test_libraries_info() { // This library acts as a dependency for the libraries below. $libraries['example_dependency'] = array( 'name' => 'Example dependency', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1.1', 'files' => array('js' => array('example_1.js')), ); $libraries['example_dependency_missing'] = array( 'name' => 'Example dependency missing', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', 'dependencies' => array('example_missing'), 'files' => array('js' => array('example_1.js')), ); $libraries['example_dependency_incompatible'] = array( 'name' => 'Example dependency incompatible', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', 'dependencies' => array('example_dependency (>1.1)'), 'files' => array('js' => array('example_1.js')), ); $libraries['example_dependency_compatible'] = array( 'name' => 'Example dependency compatible', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', 'dependencies' => array('example_dependency (>=1.1)'), 'files' => array('js' => array('example_1.js')), @@ -235,7 +263,7 @@ function libraries_test_libraries_info() { // Test the applying of callbacks. $libraries['example_callback'] = array( 'name' => 'Example callback', - 'library path' => drupal_get_path('module', 'libraries') . '/tests/example', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', 'version' => '1', 'versions' => array( '1' => array( @@ -271,12 +299,12 @@ function libraries_test_libraries_info() { ), ), 'callbacks' => array( - 'info' => array('_libraries_test_info_callback'), - 'pre-detect' => array('_libraries_test_pre_detect_callback'), - 'post-detect' => array('_libraries_test_post_detect_callback'), - 'pre-dependencies-load' => array('_libraries_test_pre_dependencies_load_callback'), - 'pre-load' => array('_libraries_test_pre_load_callback'), - 'post-load' => array('_libraries_test_post_load_callback'), + 'info' => array('_libraries_test_module_info_callback'), + 'pre-detect' => array('_libraries_test_module_pre_detect_callback'), + 'post-detect' => array('_libraries_test_module_post_detect_callback'), + 'pre-dependencies-load' => array('_libraries_test_module_pre_dependencies_load_callback'), + 'pre-load' => array('_libraries_test_module_pre_load_callback'), + 'post-load' => array('_libraries_test_module_post_load_callback'), ), // These keys are for testing purposes only. 'info callback' => 'not applied', @@ -287,24 +315,40 @@ function libraries_test_libraries_info() { 'post-load callback' => 'not applied', ); + $libraries['example_path_variable_override'] = array( + 'name' => 'Example path variable override', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', + 'version' => '1', + 'files' => array( + 'php' => array('example_1.php', 'example_2.php'), + ), + ); + return $libraries; } +/** + * Implements hook_libraries_info_alter(). + */ +function libraries_test_module_libraries_info_alter(&$libraries) { + $libraries['example_module']['module_altered'] = TRUE; +} + /** * Implements hook_libraries_info_file_paths() */ -function libraries_test_libraries_info_file_paths() { - return array(drupal_get_path('module', 'libraries_test') . '/example'); +function libraries_test_module_libraries_info_file_paths() { + return array(drupal_get_path('module', 'libraries') . '/tests/libraries'); } /** * Gets the version of an example library. * * Returns exactly the version string entered as the $version parameter. This - * function cannot be collapsed with _libraries_test_return_installed(), because - * of the different arguments that are passed automatically. + * function cannot be collapsed with _libraries_test_module_return_installed(), + * because of the different arguments that are passed automatically. */ -function _libraries_test_return_version($library, $version) { +function _libraries_test_module_return_version($library, $version) { return $version; } @@ -340,7 +384,7 @@ function _libraries_test_return_version($library, $version) { * * @see libraries_get_version() */ -function _libraries_test_get_version($library, $file, $pattern, $lines = 20, $cols = 200) { +function _libraries_test_module_get_version($library, $file, $pattern, $lines = 20, $cols = 200) { $file = DRUPAL_ROOT . '/' . $library['library path'] . '/' . $file; if (!file_exists($file)) { @@ -361,10 +405,10 @@ function _libraries_test_get_version($library, $file, $pattern, $lines = 20, $co * Detects the variant of an example library. * * Returns exactly the value of $installed, either TRUE or FALSE. This function - * cannot be collapsed with _libraries_test_return_version(), because of the - * different arguments that are passed automatically. + * cannot be collapsed with _libraries_test_module_return_version(), because of + * the different arguments that are passed automatically. */ -function _libraries_test_return_installed($library, $name, $installed) { +function _libraries_test_module_return_installed($library, $name, $installed) { return $installed; } @@ -373,10 +417,10 @@ function _libraries_test_return_installed($library, $name, $installed) { * * This function is used as a test callback for the 'info' callback group. * - * @see _libraries_test_callback() + * @see _libraries_test_module_callback() */ -function _libraries_test_info_callback(&$library, $version, $variant) { - _libraries_test_callback($library, $version, $variant, 'info'); +function _libraries_test_module_info_callback(&$library, $version, $variant) { + _libraries_test_module_callback($library, $version, $variant, 'info'); } /** @@ -384,10 +428,10 @@ function _libraries_test_info_callback(&$library, $version, $variant) { * * This function is used as a test callback for the 'pre-detect' callback group. * - * @see _libraries_test_callback() + * @see _libraries_test_module_callback() */ -function _libraries_test_pre_detect_callback(&$library, $version, $variant) { - _libraries_test_callback($library, $version, $variant, 'pre-detect'); +function _libraries_test_module_pre_detect_callback(&$library, $version, $variant) { + _libraries_test_module_callback($library, $version, $variant, 'pre-detect'); } /** @@ -395,10 +439,10 @@ function _libraries_test_pre_detect_callback(&$library, $version, $variant) { * * This function is used as a test callback for the 'post-detect callback group. * - * @see _libraries_test_callback() + * @see _libraries_test_module_callback() */ -function _libraries_test_post_detect_callback(&$library, $version, $variant) { - _libraries_test_callback($library, $version, $variant, 'post-detect'); +function _libraries_test_module_post_detect_callback(&$library, $version, $variant) { + _libraries_test_module_callback($library, $version, $variant, 'post-detect'); } /** @@ -407,10 +451,10 @@ function _libraries_test_post_detect_callback(&$library, $version, $variant) { * This function is used as a test callback for the 'pre-dependencies-load' * callback group. * - * @see _libraries_test_callback() + * @see _libraries_test_module_callback() */ -function _libraries_test_pre_dependencies_load_callback(&$library, $version, $variant) { - _libraries_test_callback($library, $version, $variant, 'pre-dependencies-load'); +function _libraries_test_module_pre_dependencies_load_callback(&$library, $version, $variant) { + _libraries_test_module_callback($library, $version, $variant, 'pre-dependencies-load'); } /** @@ -418,10 +462,10 @@ function _libraries_test_pre_dependencies_load_callback(&$library, $version, $va * * This function is used as a test callback for the 'pre-load' callback group. * - * @see _libraries_test_callback() + * @see _libraries_test_module_callback() */ -function _libraries_test_pre_load_callback(&$library, $version, $variant) { - _libraries_test_callback($library, $version, $variant, 'pre-load'); +function _libraries_test_module_pre_load_callback(&$library, $version, $variant) { + _libraries_test_module_callback($library, $version, $variant, 'pre-load'); } /** @@ -429,10 +473,10 @@ function _libraries_test_pre_load_callback(&$library, $version, $variant) { * * This function is used as a test callback for the 'post-load' callback group. * - * @see _libraries_test_callback() + * @see _libraries_test_module_callback() */ -function _libraries_test_post_load_callback(&$library, $version, $variant) { - _libraries_test_callback($library, $version, $variant, 'post-load'); +function _libraries_test_module_post_load_callback(&$library, $version, $variant) { + _libraries_test_module_callback($library, $version, $variant, 'post-load'); } /** @@ -456,7 +500,7 @@ function _libraries_test_post_load_callback(&$library, $version, $variant) { * The variant the library information passed in $library belongs to, or NULL * if the passed library information is not variant-specific. */ -function _libraries_test_callback(&$library, $version, $variant, $group) { +function _libraries_test_module_callback(&$library, $version, $variant, $group) { $string = 'applied'; if (isset($version) && isset($variant)) { $string .= " (version $version, variant $variant)"; @@ -475,7 +519,7 @@ function _libraries_test_callback(&$library, $version, $variant, $group) { // The following is used to test caching of library information. // Only set the message for the top-level library to prevent confusing, // duplicate messages. - if (!isset($version) && !isset($variant) && variable_get('libraries_test_cache', FALSE)) { + if (!isset($version) && !isset($variant) && variable_get('libraries_test_module_cache', FALSE)) { drupal_set_message("The $group callback group was invoked."); } } @@ -483,32 +527,40 @@ function _libraries_test_callback(&$library, $version, $variant, $group) { /** * Implements hook_menu(). */ -function libraries_test_menu() { +function libraries_test_module_menu() { $base = array( - 'page callback' => '_libraries_test_load', + 'page callback' => '_libraries_test_module_load', 'access callback' => TRUE, ); - $items['libraries_test/files'] = $base + array( + $items['libraries-test-module/files'] = $base + array( 'title' => 'Test files', 'page arguments' => array('example_files'), ); - $items['libraries_test/integration_files'] = $base + array( - 'title' => 'Test integration files', - 'page arguments' => array('example_integration_files'), + $items['libraries-test-module/module-integration-files'] = $base + array( + 'title' => 'Test module integration files', + 'page arguments' => array('example_module_integration_files'), ); - $items['libraries_test/versions'] = $base + array( + $items['libraries-test-module/module-integration-files-post-load'] = $base + array( + 'title' => 'Test module post-load integration files', + 'page arguments' => array('example_module_integration_files_post_load'), + ); + $items['libraries-test-module/theme-integration-files'] = $base + array( + 'title' => 'Test theme integration files', + 'page arguments' => array('example_theme_integration_files'), + ); + $items['libraries-test-module/versions'] = $base + array( 'title' => 'Test version loading', 'page arguments' => array('example_versions'), ); - $items['libraries_test/variant'] = $base + array( + $items['libraries-test-module/variant'] = $base + array( 'title' => 'Test variant loading', 'page arguments' => array('example_variant', 'example_variant'), ); - $items['libraries_test/versions_and_variants'] = $base + array( + $items['libraries-test-module/versions-and-variants'] = $base + array( 'title' => 'Test concurrent version and variant loading', 'page arguments' => array('example_versions_and_variants', 'example_variant_2'), ); - $items['libraries_test/cache'] = $base + array( + $items['libraries-test-module/cache'] = $base + array( 'title' => 'Test caching of library information', 'page arguments' => array('example_callback'), ); @@ -523,7 +575,7 @@ function libraries_test_menu() { * JavaScript and CSS files for easier debugging. See example/README.txt for * more information. */ -function _libraries_test_load($library, $variant = NULL) { +function _libraries_test_module_load($library, $variant = NULL) { libraries_load($library, $variant); // JavaScript and CSS files can be checked directly by SimpleTest, so we only // need to manually check for PHP files. @@ -532,14 +584,14 @@ function _libraries_test_load($library, $variant = NULL) { // For easer debugging of JS loading, a text is shown that the JavaScript will // replace. $output .= '

                                JavaScript

                                '; - $output .= '
                                '; + $output .= '
                                '; $output .= 'If this text shows up, no JavaScript test file was loaded.'; $output .= '
                                '; // For easier debugging of CSS loading, the loaded CSS files will color the // following text. $output .= '

                                CSS

                                '; - $output .= '
                                '; + $output .= '
                                '; $output .= 'If one of the CSS test files has been loaded, this text will be colored:'; $output .= '
                                  '; // Do not reference the actual CSS files (i.e. including '.css'), because that @@ -548,17 +600,18 @@ function _libraries_test_load($library, $variant = NULL) { $output .= '
                                • example_2: green
                                • '; $output .= '
                                • example_3: orange
                                • '; $output .= '
                                • example_4: blue
                                • '; - $output .= '
                                • libraries_test: purple
                                • '; + $output .= '
                                • libraries_test_module: purple
                                • '; + $output .= '
                                • libraries_test_theme: turquoise
                                • '; $output .= '
                                '; $output .= '
                                '; $output .= '

                                PHP

                                '; - $output .= '
                                '; + $output .= '
                                '; $output .= 'The following is a list of all loaded test PHP files:'; $output .= '
                                  '; $files = get_included_files(); foreach ($files as $file) { - if (strpos($file, 'libraries/test') && !strpos($file, 'libraries_test.module')) { + if (strpos($file, 'libraries/test') && !strpos($file, 'libraries_test_module.module') && !strpos($file, 'template.php')) { $output .= '
                                • ' . str_replace(DRUPAL_ROOT . '/', '', $file) . '
                                • '; } } @@ -567,3 +620,12 @@ function _libraries_test_load($library, $variant = NULL) { return $output; } + +/** + * Implements hook_system_theme_info(). + */ +function libraries_test_module_system_theme_info() { + $themes = array(); + $themes['libraries_test_theme'] = drupal_get_path('module', 'libraries') . '/tests/themes/libraries_test_theme/libraries_test_theme.info'; + return $themes; +} diff --git a/site/sites/all/modules/libraries/tests/modules/libraries_test_module/libraries_test_module_post_load.inc b/site/sites/all/modules/libraries/tests/modules/libraries_test_module/libraries_test_module_post_load.inc new file mode 100644 index 0000000..8e308f2 --- /dev/null +++ b/site/sites/all/modules/libraries/tests/modules/libraries_test_module/libraries_test_module_post_load.inc @@ -0,0 +1,15 @@ + 'Example theme', + 'theme_altered' => FALSE, + ); + $libraries['example_theme_integration_files'] = array( + 'name' => 'Example theme integration file', + 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', + 'version' => '1', + 'integration files' => array( + 'libraries_test_theme' => array( + 'js' => array('libraries_test_theme.js'), + 'css' => array('libraries_test_theme.css'), + 'php' => array('libraries_test_theme.inc'), + ), + ), + ); + return $libraries; +} + +/** + * Implements hook_libraries_info_alter(). + */ +function libraries_test_theme_libraries_info_alter(&$libraries) { + $libraries['example_theme']['theme_altered'] = TRUE; +} diff --git a/site/themes/bartik/bartik.info b/site/themes/bartik/bartik.info index b80138b..a49c03e 100644 --- a/site/themes/bartik/bartik.info +++ b/site/themes/bartik/bartik.info @@ -34,8 +34,7 @@ regions[footer] = Footer settings[shortcut_module_link] = 0 -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/themes/bartik/css/style-rtl.css b/site/themes/bartik/css/style-rtl.css index 3bb02ca..991edfc 100644 --- a/site/themes/bartik/css/style-rtl.css +++ b/site/themes/bartik/css/style-rtl.css @@ -225,10 +225,10 @@ ul.action-links li a { /* Animated throbber */ html.js input.form-autocomplete { - background-position: 1% 4px; + background-position: 1% center; } html.js input.throbbing { - background-position: 1% -16px; + background-position: 1% center; } /* Comment form */ diff --git a/site/themes/bartik/css/style.css b/site/themes/bartik/css/style.css index 8e95202..8426e56 100644 --- a/site/themes/bartik/css/style.css +++ b/site/themes/bartik/css/style.css @@ -53,7 +53,7 @@ kbd, samp, var { padding: 0 0.4em; - font-size: 0.77em; + font-size: 0.857em; font-family: Menlo, Consolas, "Andale Mono", "Lucida Console", "Nimbus Mono L", "DejaVu Sans Mono", monospace, "Courier New"; } code { @@ -704,7 +704,6 @@ ul.links { } .comment .submitted .comment-permalink { font-size: 0.786em; - text-transform: lowercase; } .comment .content { font-size: 0.929em; @@ -1326,14 +1325,6 @@ input.form-button-disabled:active, color: #717171; } -/* Animated throbber */ -html.js input.form-autocomplete { - background-position: 100% 4px; /* LTR */ -} -html.js input.throbbing { - background-position: 100% -16px; /* LTR */ -} - /* Comment form */ .comment-form label { float: left; /* LTR */ diff --git a/site/themes/garland/garland.info b/site/themes/garland/garland.info index fc252f6..b211949 100644 --- a/site/themes/garland/garland.info +++ b/site/themes/garland/garland.info @@ -7,8 +7,7 @@ stylesheets[all][] = style.css stylesheets[print][] = print.css settings[garland_width] = fluid -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/themes/garland/template.php b/site/themes/garland/template.php index 416a43a..ef7d477 100644 --- a/site/themes/garland/template.php +++ b/site/themes/garland/template.php @@ -19,22 +19,22 @@ function garland_breadcrumb($variables) { /** * Override or insert variables into the maintenance page template. */ -function garland_preprocess_maintenance_page(&$vars) { +function garland_preprocess_maintenance_page(&$variables) { // While markup for normal pages is split into page.tpl.php and html.tpl.php, // the markup for the maintenance page is all in the single // maintenance-page.tpl.php template. So, to have what's done in // garland_preprocess_html() also happen on the maintenance page, it has to be // called here. - garland_preprocess_html($vars); + garland_preprocess_html($variables); } /** * Override or insert variables into the html template. */ -function garland_preprocess_html(&$vars) { +function garland_preprocess_html(&$variables) { // Toggle fixed or fluid width. if (theme_get_setting('garland_width') == 'fluid') { - $vars['classes_array'][] = 'fluid-width'; + $variables['classes_array'][] = 'fluid-width'; } // Add conditional CSS for IE6. drupal_add_css(path_to_theme() . '/fix-ie.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'lt IE 7', '!IE' => FALSE), 'preprocess' => FALSE)); @@ -43,27 +43,27 @@ function garland_preprocess_html(&$vars) { /** * Override or insert variables into the html template. */ -function garland_process_html(&$vars) { +function garland_process_html(&$variables) { // Hook into color.module if (module_exists('color')) { - _color_html_alter($vars); + _color_html_alter($variables); } } /** * Override or insert variables into the page template. */ -function garland_preprocess_page(&$vars) { +function garland_preprocess_page(&$variables) { // Move secondary tabs into a separate variable. - $vars['tabs2'] = array( + $variables['tabs2'] = array( '#theme' => 'menu_local_tasks', - '#secondary' => $vars['tabs']['#secondary'], + '#secondary' => $variables['tabs']['#secondary'], ); - unset($vars['tabs']['#secondary']); + unset($variables['tabs']['#secondary']); - if (isset($vars['main_menu'])) { - $vars['primary_nav'] = theme('links__system_main_menu', array( - 'links' => $vars['main_menu'], + if (isset($variables['main_menu'])) { + $variables['primary_nav'] = theme('links__system_main_menu', array( + 'links' => $variables['main_menu'], 'attributes' => array( 'class' => array('links', 'inline', 'main-menu'), ), @@ -75,11 +75,11 @@ function garland_preprocess_page(&$vars) { )); } else { - $vars['primary_nav'] = FALSE; + $variables['primary_nav'] = FALSE; } - if (isset($vars['secondary_menu'])) { - $vars['secondary_nav'] = theme('links__system_secondary_menu', array( - 'links' => $vars['secondary_menu'], + if (isset($variables['secondary_menu'])) { + $variables['secondary_nav'] = theme('links__system_secondary_menu', array( + 'links' => $variables['secondary_menu'], 'attributes' => array( 'class' => array('links', 'inline', 'secondary-menu'), ), @@ -91,66 +91,66 @@ function garland_preprocess_page(&$vars) { )); } else { - $vars['secondary_nav'] = FALSE; + $variables['secondary_nav'] = FALSE; } // Prepare header. $site_fields = array(); - if (!empty($vars['site_name'])) { - $site_fields[] = $vars['site_name']; + if (!empty($variables['site_name'])) { + $site_fields[] = $variables['site_name']; } - if (!empty($vars['site_slogan'])) { - $site_fields[] = $vars['site_slogan']; + if (!empty($variables['site_slogan'])) { + $site_fields[] = $variables['site_slogan']; } - $vars['site_title'] = implode(' ', $site_fields); + $variables['site_title'] = implode(' ', $site_fields); if (!empty($site_fields)) { $site_fields[0] = '' . $site_fields[0] . ''; } - $vars['site_html'] = implode(' ', $site_fields); + $variables['site_html'] = implode(' ', $site_fields); // Set a variable for the site name title and logo alt attributes text. - $slogan_text = $vars['site_slogan']; - $site_name_text = $vars['site_name']; - $vars['site_name_and_slogan'] = $site_name_text . ' ' . $slogan_text; + $slogan_text = $variables['site_slogan']; + $site_name_text = $variables['site_name']; + $variables['site_name_and_slogan'] = $site_name_text . ' ' . $slogan_text; } /** * Override or insert variables into the node template. */ -function garland_preprocess_node(&$vars) { - $vars['submitted'] = $vars['date'] . ' — ' . $vars['name']; +function garland_preprocess_node(&$variables) { + $variables['submitted'] = $variables['date'] . ' — ' . $variables['name']; } /** * Override or insert variables into the comment template. */ -function garland_preprocess_comment(&$vars) { - $vars['submitted'] = $vars['created'] . ' — ' . $vars['author']; +function garland_preprocess_comment(&$variables) { + $variables['submitted'] = $variables['created'] . ' — ' . $variables['author']; } /** * Override or insert variables into the block template. */ -function garland_preprocess_block(&$vars) { - $vars['title_attributes_array']['class'][] = 'title'; - $vars['classes_array'][] = 'clearfix'; +function garland_preprocess_block(&$variables) { + $variables['title_attributes_array']['class'][] = 'title'; + $variables['classes_array'][] = 'clearfix'; } /** * Override or insert variables into the page template. */ -function garland_process_page(&$vars) { +function garland_process_page(&$variables) { // Hook into color.module if (module_exists('color')) { - _color_page_alter($vars); + _color_page_alter($variables); } } /** * Override or insert variables into the region template. */ -function garland_preprocess_region(&$vars) { - if ($vars['region'] == 'header') { - $vars['classes_array'][] = 'clearfix'; +function garland_preprocess_region(&$variables) { + if ($variables['region'] == 'header') { + $variables['classes_array'][] = 'clearfix'; } } diff --git a/site/themes/seven/seven.info b/site/themes/seven/seven.info index 30ac6d5..8b1eb06 100644 --- a/site/themes/seven/seven.info +++ b/site/themes/seven/seven.info @@ -13,8 +13,7 @@ regions[page_bottom] = Page bottom regions[sidebar_first] = First sidebar regions_hidden[] = sidebar_first -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/themes/seven/style.css b/site/themes/seven/style.css index 8bb8026..c52d661 100644 --- a/site/themes/seven/style.css +++ b/site/themes/seven/style.css @@ -475,6 +475,12 @@ table th { border-color: #bebfb9; padding: 3px 10px; } +/** + * Force browsers to calculate the width of a 'select all' TH element. + */ +table th.select-all { + width: 1px; +} table th.active { background: #bdbeb9; } @@ -703,12 +709,7 @@ select.form-select:focus { color: #000; border-color: #ace; } -html.js input.form-autocomplete { - background-position: 100% 4px; -} -html.js input.throbbing { - background-position: 100% -16px; -} + ul.action-links { margin: 1em 0; padding: 0 20px 0 20px; /* LTR */ diff --git a/site/themes/stark/stark.info b/site/themes/stark/stark.info index 519539a..e5c5bea 100644 --- a/site/themes/stark/stark.info +++ b/site/themes/stark/stark.info @@ -5,8 +5,7 @@ version = VERSION core = 7.x stylesheets[all][] = layout.css -; Information added by drupal.org packaging script on 2013-08-08 -version = "7.23" +; Information added by Drupal.org packaging script on 2018-04-25 +version = "7.59" project = "drupal" -datestamp = "1375928238" - +datestamp = "1524673284" diff --git a/site/update.php b/site/update.php index 331e632..d792703 100644 --- a/site/update.php +++ b/site/update.php @@ -178,7 +178,8 @@ function update_results_page() { $output = '

                                  Updates were attempted. If you see no failures below, you may proceed happily back to your site. Otherwise, you may need to update your database manually.' . $log_message . '

                                  '; } else { - list($module, $version) = array_pop(reset($_SESSION['updates_remaining'])); + $updates_remaining = reset($_SESSION['updates_remaining']); + list($module, $version) = array_pop($updates_remaining); $output = '

                                  The update process was aborted prematurely while running update #' . $version . ' in ' . $module . '.module.' . $log_message; if (module_exists('dblog')) { $output .= ' You may need to check the watchdog database table manually.'; @@ -467,13 +468,13 @@ function update_check_requirements($skip_warnings = FALSE) { // update.php ops. case 'selection': - if (isset($_GET['token']) && $_GET['token'] == drupal_get_token('update')) { + if (isset($_GET['token']) && drupal_valid_token($_GET['token'], 'update')) { $output = update_selection_page(); break; } case 'Apply pending updates': - if (isset($_GET['token']) && $_GET['token'] == drupal_get_token('update')) { + if (isset($_GET['token']) && drupal_valid_token($_GET['token'], 'update')) { // Generate absolute URLs for the batch processing (using $base_root), // since the batch API will pass them to url() which does not handle // update.php correctly by default. diff --git a/site/web.config b/site/web.config index 09983d9..c6fb5c8 100644 --- a/site/web.config +++ b/site/web.config @@ -6,7 +6,7 @@ - +