* Implementation of hook_views_rss_namespaces().
*/
function views_rss_dc_views_rss_namespaces() {
- $namespaces['dc'] = 'http://purl.org/dc/elements/1.1/';
+ $namespaces['dc'] = array(
+ 'prefix' => 'xmlns',
+ 'uri' => 'http://purl.org/dc/elements/1.1/',
+ );
return $namespaces;
}
// Prepare namespaces.
$namespaces = array();
foreach (views_rss_get_namespaces() as $module => $module_namespaces) {
- foreach ($module_namespaces as $namespace => $predefined_uri_reference) {
- if (!empty($predefined_uri_reference)) {
- $namespaces[$namespace] = "xmlns:$namespace=\"$predefined_uri_reference\"";
- }
+ foreach ($module_namespaces as $namespace => $definition) {
+ // Check if definition provided through modules hooks
+ // should be overwritten by module configuration.
if (
isset($view->style_plugin->options['namespaces'][$module][$namespace])
&& !empty($view->style_plugin->options['namespaces'][$module][$namespace])
) {
- $namespaces[$namespace] = "xmlns:$namespace=\"{$view->style_plugin->options['namespaces'][$module][$namespace]}\"";
+ $definition['uri'] = $view->style_plugin->options['namespaces'][$module][$namespace];
+ }
+ if (isset($definition['uri']) && !empty($definition['uri'])) {
+ // Namespaces with prefix, for example: xml:base="" or xmlns:dc=""
+ if (isset($definition['prefix']) && !empty($definition['prefix'])) {
+ $namespaces[$namespace] = "{$definition['prefix']}:$namespace=\"{$definition['uri']}\"";
+ }
+ // Namespaces without prefix, for example: content="" or foaf=""
+ else {
+ $namespaces[$namespace] = "$namespace=\"{$definition['uri']}\"";
+ }
}
}
}
$namespaces = views_rss_get_namespaces();
if (count($namespaces)) {
foreach ($namespaces as $module => $module_namespaces) {
- foreach ($module_namespaces as $namespace => $predefined_uri_reference) {
+ foreach (array_keys($module_namespaces) as $namespace) {
$options['namespaces'][$module][$namespace] = array('default' => NULL);
}
}
$namespaces = views_rss_get_namespaces();
if (count($namespaces)) {
foreach ($namespaces as $module => $module_namespaces) {
- foreach ($module_namespaces as $namespace => $predefined_uri_reference) {
- if (empty($predefined_uri_reference)) {
+ foreach ($module_namespaces as $namespace => $definition) {
+ if (empty($definition['uri'])) {
// Add fieldset for namespace if not yet added.
if (!isset($form['namespaces'])) {
$form['namespaces'] = array(
drupal_alter('views_rss_namespaces', $namespaces);
// Add namespaces not defined by any hook_views_rss_namespaces(),
// but used in any of defined <channel> or <item> elements.
+ // Let's also add "xmlns" prefix by default to such namespaces.
foreach (views_rss_get_channel_elements() as $module => $elements) {
foreach (array_keys($elements) as $element) {
list($namespace, $element_name) = views_rss_extract_element_names($element);
if ($namespace && !isset($namespaces[$module][$namespace])) {
- $namespaces[$module][$namespace] = NULL;
+ $namespaces[$module][$namespace] = array('prefix' => 'xmlns', 'uri' => NULL);;
}
}
}
foreach (array_keys($elements) as $element) {
list($namespace, $element_name) = views_rss_extract_element_names($element);
if ($namespace && !isset($namespaces[$module][$namespace])) {
- $namespaces[$module][$namespace] = NULL;
+ $namespaces[$module][$namespace] = array('prefix' => 'xmlns', 'uri' => NULL);;
}
}
}