essence icon indicating copy to clipboard operation
essence copied to clipboard

Default filter

Open zyuhel opened this issue 8 years ago • 3 comments

May be there should be some default provider added, for example opengraph/twitter cards cover many cases. Don't know if default providers allowed by library conception, so wanted to ask before making a pull request. Something like these.

    /**
     *  Configures the Default provider
     */
    protected function _setupDefault()
    {
        $this->configure([
            'DefaultMetaPattern' => '~^(og|twitter):~i',
            'DefaultPresenters' => Container::unique(function($C) {
                return [
                    $C->get('OpenGraphReindexer'),
                    $C->get('TwitterCardsReindexer')
                ];
            }),
            'DefaultProvider'=> function($C) {
                $Default = new MetaTags($C->get('Http'), $C->get('Dom'));
                $Default->setPreparators([]);
                $Default->setPresenters($C->get('DefaultPresenters'));
                $Default->setMetaPattern($C->get('DefaultMetaPattern'));

                return $Default;
            }

        ]);
    }

zyuhel avatar Oct 26 '15 11:10 zyuhel

There was default oEmbed and OpenGraph providers before, but I removed them. I really like the idea but it can add some heavy requests and take quite some time. But maybe there should be generic providers by default, to handle most cases, and let the user deactivate them if needed.

felixgirault avatar Oct 26 '15 11:10 felixgirault

yes at least default opengraph provider is better that nothing. library is used to get info from url,it is possible that url couldn't be holded with provider list.

if needed anyone could disable it with

$Essence = new Essence\Essence([
    'filters' => [
        '_default' => false
    ]
]);

zyuhel avatar Oct 26 '15 11:10 zyuhel

In that case I would add every default provider possible, probably in that order:

  • OEmbed
  • OpenGraph
  • TwitterCards

...and give them names like GenericOEmbed or GenericOpenGraph so that it is clear what their purpose are.

felixgirault avatar Oct 26 '15 13:10 felixgirault