security update for uuid xmlsitemap file_field_path

This commit is contained in:
2018-10-13 16:01:24 +02:00
parent f7ae17e6c4
commit a163542966
109 changed files with 5458 additions and 1952 deletions

View File

@@ -0,0 +1,79 @@
CONTENTS OF THIS FILE
---------------------
* Introduction
* Requirements
* Recommended modules
* Installation
* Configuration
* Troubleshooting
* Maintainers
INTRODUCTION
------------
The XML sitemap engines module, part of the XML sitemap
(https://www.drupal.org/project/xmlsitemap) package, uploads the sitemap to
search engines automatically. The XML sitemap module creates a sitemap that
conforms to the sitemaps.org specification. This helps search engines to more
intelligently crawl a website and keep their results up to date.
* For a full description of the module visit
https://www.drupal.org/documentation/modules/xmlsitemap
* To submit bug reports and feature suggestions, or to track changes visit
https://www.drupal.org/project/issues/xmlsitemap
REQUIREMENTS
------------
This module requires the following module:
* XML sitemap - https://www.drupal.org/project/xmlsitemap
RECOMMENDED MODULES
-------------------
* Ctools - https://www.drupal.org/project/ctools
* RobotsTxt - https://www.drupal.org/project/robotstxt
* Site Verification - https://www.drupal.org/project/site_verify
* Browscap - https://www.drupal.org/project/browscap
* Vertical Tabs - https://www.drupal.org/project/vertical_tabs
INSTALLATION
------------
This is a submodule of the XML sitemap module. Install the XML sitemap module
as you would normally install a contributed Drupal module. Visit
https://www.drupal.org/node/895232 for further information.
CONFIGURATION
-------------
1. Install the XML sitemap module.
2. Enable the XML sitemap module.
3. To upload sitemaps to the search engines and customize how often the sitemaps
should be uploaded, enable the XML sitemap engines module.
4. After building an XML sitemap, navigate to Administration > Configuration >
XML sitemap > Search Engines.
5. Choose which engines you wish to send the sitemap to by selecting the
appropriate checkboxes. Save configuration.
TROUBLESHOOTING
---------------
To verify the sitemaps ownership with search engines, be sure Cron is run
regularly.
MAINTAINERS
-----------
* Andrei Mateescu (amateescu) - https://www.drupal.org/u/amateescu
* Dave Reid - https://www.drupal.org/u/dave-reid
* Juampy NR (juampynr) - https://www.drupal.org/u/juampynr
* Tasya Rukmana (tadityar) - https://www.drupal.org/u/tadityar

View File

@@ -5,9 +5,25 @@
* Tests for the xmlsitemap_engines module.
*/
/**
* Functional Test.
*
* @codingStandardsIgnoreStart
*/
class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
/**
* Submit URL.
*
* @var string
*/
protected $submit_url;
/**
* Get Info.
*
* @codingStandardsIgnoreEnd
*/
public static function getInfo() {
return array(
'name' => 'XML sitemap engines functional tests',
@@ -16,7 +32,10 @@ class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
);
}
function setUp($modules = array()) {
/**
* Setup.
*/
public function setUp($modules = array()) {
$modules[] = 'xmlsitemap_engines';
$modules[] = 'xmlsitemap_engines_test';
parent::setUp($modules);
@@ -32,7 +51,10 @@ class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
$this->submit_url = url('ping', array('absolute' => TRUE, 'query' => array('sitemap' => ''))) . '[sitemap]';
}
function submitEngines() {
/**
* Submit Engines.
*/
public function submitEngines() {
variable_set('xmlsitemap_engines_submit_last', REQUEST_TIME - 10000);
variable_set('xmlsitemap_generated_last', REQUEST_TIME - 100);
variable_set('xmlsitemap_engines_minimum_lifetime', 0);
@@ -40,14 +62,23 @@ class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
$this->assertTrue(variable_get('xmlsitemap_engines_submit_last', 0) > (REQUEST_TIME - 100), 'Submitted the sitemaps to search engines.');
}
function testPrepareURL() {
/**
* Test Prepare URL.
*
* @codingStandardsIgnoreStart
*/
public function testPrepareURL() {
// @codingStandardsIgnoreEnd
$sitemap = 'http://example.com/sitemap.xml';
$input = 'http://example.com/ping?sitemap=[sitemap]&foo=bar';
$output = 'http://example.com/ping?sitemap=http://example.com/sitemap.xml&foo=bar';
$this->assertEqual(xmlsitemap_engines_prepare_url($input, $sitemap), $output);
}
function testSubmitSitemaps() {
/**
* Test Submit Sitemaps.
*/
public function testSubmitSitemaps() {
$sitemaps = array();
$sitemap = new stdClass();
$sitemap->uri = array(
@@ -63,11 +94,26 @@ class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
$sitemaps[] = $sitemap;
xmlsitemap_engines_submit_sitemaps($this->submit_url, $sitemaps);
$this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Recieved ping for @sitemap.', 'variables' => array('@sitemap' => 'http://example.com/sitemap.xml')));
$this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Recieved ping for @sitemap.', 'variables' => array('@sitemap' => 'http://example.com/sitemap-2.xml')));
$this->assertWatchdogMessage(array(
'type' => 'xmlsitemap',
'message' => 'Recieved ping for @sitemap.',
'variables' => array(
'@sitemap' => 'http://example.com/sitemap.xml',
),
));
$this->assertWatchdogMessage(array(
'type' => 'xmlsitemap',
'message' => 'Recieved ping for @sitemap.',
'variables' => array(
'@sitemap' => 'http://example.com/sitemap-2.xml',
),
));
}
function testPing() {
/**
* Test Ping.
*/
public function testPing() {
$edit = array('xmlsitemap_engines_engines[simpletest]' => TRUE);
$this->drupalPost('admin/config/search/xmlsitemap/engines', $edit, t('Save configuration'));
$this->assertText(t('The configuration options have been saved.'));
@@ -77,7 +123,13 @@ class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
$this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Recieved ping for @sitemap.'));
}
function testCustomURL() {
/**
* Test Custom URL.
*
* @codingStandardsIgnoreStart
*/
public function testCustomURL() {
// @codingStandardsIgnoreEnd
$edit = array('xmlsitemap_engines_custom_urls' => 'an-invalid-url');
$this->drupalPost('admin/config/search/xmlsitemap/engines', $edit, t('Save configuration'));
$this->assertText('Invalid URL an-invalid-url.');
@@ -89,7 +141,14 @@ class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
$this->assertText(t('The configuration options have been saved.'));
$this->submitEngines();
$this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Submitted the sitemap to %url and received response @code.', 'variables' => array('%url' => $url, '@code' => '404')));
$this->assertWatchdogMessage(array(
'type' => 'xmlsitemap',
'message' => 'Submitted the sitemap to %url and received response @code.',
'variables' => array(
'%url' => $url,
'@code' => '404',
),
));
$this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'No valid sitemap parameter provided.'));
$this->assertWatchdogMessage(array('type' => 'page not found', 'message' => 'ping'));
@@ -99,7 +158,23 @@ class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
$this->submitEngines();
$url = xmlsitemap_engines_prepare_url($this->submit_url, url('sitemap.xml', array('absolute' => TRUE)));
$this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Submitted the sitemap to %url and received response @code.', 'variables' => array('%url' => $url, '@code' => '200')));
$this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Recieved ping for @sitemap.', 'variables' => array('@sitemap' => url('sitemap.xml', array('absolute' => TRUE)))));
$this->assertWatchdogMessage(array(
'type' => 'xmlsitemap',
'message' => 'Submitted the sitemap to %url and received response @code.',
'variables' => array(
'%url' => $url,
'@code' => '200',
),
));
$this->assertWatchdogMessage(array(
'type' => 'xmlsitemap',
'message' => 'Recieved ping for @sitemap.',
'variables' => array(
'@sitemap' => url('sitemap.xml', array(
'absolute' => TRUE,
)),
),
));
}
}

View File

@@ -2,13 +2,10 @@ name = XML sitemap engines test
description = Support module for XML sitemap engines testing.
package = Testing
core = 7.x
files[] = xmlsitemap_engines_test.module
version = VERSION
hidden = TRUE
; Information added by Drupal.org packaging script on 2016-05-25
version = "7.x-2.3"
; Information added by Drupal.org packaging script on 2018-10-09
version = "7.x-2.6"
core = "7.x"
project = "xmlsitemap"
datestamp = "1464191061"
datestamp = "1539120486"

View File

@@ -1,11 +1,17 @@
<?php
/**
* @file
* Unit tests for the XML sitemap engines project.
*/
/**
* Implements hook_menu().
*/
function xmlsitemap_engines_test_menu() {
$items['ping'] = array(
'page callback' => 'xmlsitemap_engines_test_pinged',
// @codingStandardsIgnoreLine
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
@@ -30,6 +36,9 @@ function xmlsitemap_engines_test_xmlsitemap_engine_info_alter(&$engines) {
$engines['simpletest']['url'] = url('ping', array('absolute' => TRUE, 'query' => array('sitemap' => ''))) . '[sitemap]';
}
/**
* Test pinged.
*/
function xmlsitemap_engines_test_pinged() {
if (empty($_GET['sitemap']) || !valid_url($_GET['sitemap'])) {
watchdog('xmlsitemap', 'No valid sitemap parameter provided.', array(), WATCHDOG_WARNING);

View File

@@ -26,7 +26,19 @@ function xmlsitemap_engines_settings_form() {
$form['xmlsitemap_engines_minimum_lifetime'] = array(
'#type' => 'select',
'#title' => t('Do not submit more often than every'),
'#options' => drupal_map_assoc(array(3600, 10800, 21600, 32400, 43200, 86400, 172800, 259200, 604800, 604800 * 2, 604800 * 4), 'format_interval'),
'#options' => drupal_map_assoc(array(
3600,
10800,
21600,
32400,
43200,
86400,
172800,
259200,
604800,
604800 * 2,
604800 * 4,
), 'format_interval'),
'#default_value' => variable_get('xmlsitemap_engines_minimum_lifetime', 86400),
);
$form['xmlsitemap_engines_submit_updated'] = array(
@@ -37,7 +49,12 @@ function xmlsitemap_engines_settings_form() {
$form['xmlsitemap_engines_custom_urls'] = array(
'#type' => 'textarea',
'#title' => t('Custom submission URLs'),
'#description' => t('Enter one URL per line. The token [sitemap] will be replaced with the URL to your sitemap. For example: %example-before would become %example-after.', array('%example-before' => 'http://example.com/ping?[sitemap]', '%example-after' => xmlsitemap_engines_prepare_url('http://example.com/ping?[sitemap]', url('sitemap.xml', array('absolute' => TRUE))))),
'#description' => t('Enter one URL per line. The token [sitemap] will be replaced with the URL to your sitemap. For example: %example-before would become %example-after.', array(
'%example-before' => 'http://example.com/ping?[sitemap]',
'%example-after' => xmlsitemap_engines_prepare_url('http://example.com/ping?[sitemap]', url('sitemap.xml', array(
'absolute' => TRUE,
))),
)),
'#default_value' => variable_get('xmlsitemap_engines_custom_urls', ''),
'#rows' => 2,
'#wysiwyg' => FALSE,

View File

@@ -16,7 +16,7 @@
function hook_xmlsitemap_engine_info() {
$engines['example'] = array(
'name' => t('Example search engine'),
'url' => 'http://example.com/ping?sitemap=[sitemap]'
'url' => 'http://example.com/ping?sitemap=[sitemap]',
);
return $engines;
}

View File

@@ -3,16 +3,12 @@ description = Submit the sitemap to search engines.
package = XML sitemap
core = 7.x
dependencies[] = xmlsitemap
files[] = xmlsitemap_engines.module
files[] = xmlsitemap_engines.admin.inc
files[] = xmlsitemap_engines.install
files[] = tests/xmlsitemap_engines.test
recommends[] = site_verify
configure = admin/config/search/xmlsitemap/engines
; Information added by Drupal.org packaging script on 2016-05-25
version = "7.x-2.3"
; Information added by Drupal.org packaging script on 2018-10-09
version = "7.x-2.6"
core = "7.x"
project = "xmlsitemap"
datestamp = "1464191061"
datestamp = "1539120486"

View File

@@ -1,5 +1,10 @@
<?php
/**
* @file
* Main file for XML sitemap engines.
*/
/**
* Implements hook_hook_info().
*/
@@ -21,7 +26,7 @@ function xmlsitemap_engines_help($path, $arg) {
switch ($path) {
case 'admin/config/search/xmlsitemap/engines':
if (!module_exists('site_verify')) {
$output .= '<p>' . t('In order to verify site ownership with the search engines listed below, it is highly recommended to download and install the <a href="@site-verify">Site verification module</a>.', array('@site-verify' => 'http://drupal.org/project/site_verify')) . '</p>';
$output .= '<p>' . t('In order to verify site ownership with the search engines listed below, it is highly recommended to download and install the <a href="@site-verify">Site verification module</a>.', array('@site-verify' => 'https://www.drupal.org/project/site_verify')) . '</p>';
}
break;
}
@@ -41,12 +46,13 @@ function xmlsitemap_engines_menu() {
'type' => MENU_LOCAL_TASK,
'file' => 'xmlsitemap_engines.admin.inc',
);
//$items['admin/config/search/xmlsitemap/engines/submit'] = array(
// 'page callback' => 'xmlsitemap_engines_submit',
// 'access callback' => 'xmlsitemap_engines_submit_access',
// 'type' => MENU_CALLBACK,
//);
// @code
// $items['admin/config/search/xmlsitemap/engines/submit'] = array(
// 'page callback' => 'xmlsitemap_engines_submit',
// 'access callback' => 'xmlsitemap_engines_submit_access',
// 'type' => MENU_CALLBACK,
// );
// @endcode
return $items;
}
@@ -59,6 +65,9 @@ function xmlsitemap_engines_cron() {
}
}
/**
* Check if can submit.
*/
function xmlsitemap_engines_can_submit() {
// Skip if the site is offline since search engines will not be able to
// access the site's content.
@@ -73,16 +82,21 @@ function xmlsitemap_engines_can_submit() {
return TRUE;
}
/**
* Submit access.
*/
function xmlsitemap_engines_submit_access() {
if (!xmlsitemap_engines_can_submit()) {
return FALSE;
}
// Allow manual submissions to run.
//if ($_GET['q'] == 'admin/config/search/xmlsitemap/engines/submit' && user_access('administer xmlsitemap')) {
// return TRUE;
//}
// @code
// @codingStandardsIgnoreLine
// if ($_GET['q'] == 'admin/config/search/xmlsitemap/engines/submit' && user_access('administer xmlsitemap')) {
// return TRUE;
// }
// @endcode
$submit_updated = variable_get('xmlsitemap_engines_submit_updated', TRUE);
$submitted_last = variable_get('xmlsitemap_engines_submit_last', 0);
$minimum_lifetime = variable_get('xmlsitemap_engines_minimum_lifetime', 86400);
@@ -103,7 +117,7 @@ function xmlsitemap_engines_submit_access() {
/**
* Submit the sitemaps to all the specified search engines.
*
* @param $smids
* @param array $smids
* An optional array of XML sitemap IDs. If not provided, it will load all
* existing XML sitemaps.
*/
@@ -134,9 +148,9 @@ function xmlsitemap_engines_submit_engines(array $smids = array()) {
/**
* Submit the sitemaps to a specific URL.
*
* @param $url
* @param string $url
* The URL for sitemap submission.
* @param $sitemaps
* @param array $sitemaps
* An array of URLs of the sitemaps to submit.
*/
function xmlsitemap_engines_submit_sitemaps($url, array $sitemaps) {
@@ -151,9 +165,10 @@ function xmlsitemap_engines_submit_sitemaps($url, array $sitemaps) {
/**
* Replace valid tokens in the URL with their appropriate values.
*
* @param $url
* @param string $url
* An un-tokenized URL.
* @return
*
* @return string
* A tokenized URL.
*/
function xmlsitemap_engines_prepare_url($url, $sitemap) {
@@ -163,12 +178,9 @@ function xmlsitemap_engines_prepare_url($url, $sitemap) {
/**
* Returns information about supported search engines.
*
* @param $engine
* @param string $engine
* (optional) The engine to return information for. If omitted, information
* for all engines is returned.
* @param $reset
* (optional) Boolean whether to reset the static cache and do nothing. Only
* used for tests.
*
* @see hook_xmlsitemap_engines_info()
* @see hook_xmlsitemap_engines_info_alter()
@@ -205,13 +217,13 @@ function xmlsitemap_engines_get_engine_info($engine = NULL) {
function xmlsitemap_engines_xmlsitemap_engine_info() {
$engines['google'] = array(
'name' => t('Google'),
'url' => 'http://www.google.com/webmasters/tools/ping?sitemap=[sitemap]',
'help url' => 'http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156184',
'url' => 'https://www.google.com/webmasters/tools/ping?sitemap=[sitemap]',
'help url' => 'https://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156184',
);
$engines['bing'] = array(
'name' => t('Bing'),
'url' => 'http://www.bing.com/webmaster/ping.aspx?siteMap=[sitemap]',
'help url' => 'http://www.bing.com/webmaster',
'url' => 'https://www.bing.com/webmaster/ping.aspx?siteMap=[sitemap]',
'help url' => 'https://www.bing.com/webmaster',
);
return $engines;
}