Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

An item should not include both author and dc:creator #4

Open
2 tasks done
weierophinney opened this issue Dec 31, 2019 · 4 comments
Open
2 tasks done

An item should not include both author and dc:creator #4

weierophinney opened this issue Dec 31, 2019 · 4 comments

Comments

@weierophinney
Copy link
Member

Using the W3C Feed Validation Service:

In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
line 19, column 6: An item should not include both author and dc:creator (10 occurrences) [help]

      <dc:creator>Tina "jnienow" Pfannerstill</dc:creator>

Code to reproduce the issue

n/a

Expected results

Only one of author and dc:creator is included.

Actual results

Both are included.


Originally posted by @glen-84 at zendframework/zend-feed#90

@weierophinney
Copy link
Member Author

@glen-84
One option is to remove (deregister) the core extension DublinCore\Renderer\Feed from extension manager, but I think there was a problem.

We then have to check as well:

  • source and dc:source
  • category and dc:subject

I will have a deeper look into the code. Thanks for reporting!


Originally posted by @froschdesign at zendframework/zend-feed#90 (comment)

@weierophinney
Copy link
Member Author

I think we must change the method Zend\Writer\Writer::registerCoreExtensions:

public static function registerCoreExtensions()
{
    $coreExtensions = [
        'Atom',
        'Content',
        'DublinCore',
        'GooglePlayPodcast',
        'ITunes',
        'Slash',
        'Threading',
        'WellFormedWeb',
    ];

    foreach ($coreExtensions as $coreExtension) {
        if (static::hasExtension($coreExtension)) {
            static::registerExtension($coreExtension);
        }
    }
}

With this change an extension can be removed (deregister):

$extensionManager = new Zend\Feed\Writer\StandaloneExtensionManager();
$extensionManager->remove('DublinCore\Renderer\Entry');
$extensionManager->remove('DublinCore\Renderer\Feed');
Zend\Feed\Writer\Writer::setExtensionManager($extensionManager);

@glen-84
Can you test this idea? Thanks in advance!


Originally posted by @froschdesign at zendframework/zend-feed#90 (comment)

@weierophinney
Copy link
Member Author

@froschdesign,

It does seem to work, but shouldn't this be the default? (i.e. by default it shouldn't include both elements?)


Originally posted by @glen-84 at zendframework/zend-feed#90 (comment)

@weierophinney
Copy link
Member Author

@glen-84
Thanks for your feedback! I will create a patch for it.

… by default it shouldn't include both elements?

It was implemented in zend-feed before 2012 and I do not know if there was already a recommendation for this elements to that time.
At the current point it is an BC break to change the current behaviour but we need a option to customize it.


Originally posted by @froschdesign at zendframework/zend-feed#90 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants