FieldtypeOembed by Neue Rituale

Collect and store Oembed Data

FieldtypeOembed

What it does


Store, collect and update oembed data from external sources. It used the great PHP Library Essence by Félix Girault and adds some processwire magic. This field is based on the example module FieldtypeEvents by Ryan and the TextformatterOEmbed by felixwahner. Thanks!

Features


  • Simple embedding of content via oembed endpoints and opengraph crawling
  • Backend preview
  • Searching in oembed data with $pages->find()
  • Autoupdate with lazycron
  • Support for ProcessGraphQL with the additional module GraphQLFieldtypeOembed

Install


  1. Copy the files for this module to /site/modules/FieldtypeOembed/
  2. Execute the following command in the /site/modules/FieldtypeOembed/ directory.
    composer install
  3. In admin: Modules > Refresh. Install Fieldtype > Oembed.
  4. Create a new field of type Oembed, and name it whatever you would like. In our examples we named it simply "embed".
  5. Add the field to a template and edit a page using that template.

Configuration


Modules > Configure > FieldtypeOembed

Lazycron

Setup the Lazycron schedule. The cache expiration is configurable in the field settings.

Lazycron

Custom Provider for Essence

You can configure your own Oembed or OpenGraph providers for Essence.
How to add custom providers (Essence Git)

{
	"getty": {
		"class": "OEmbed",
		"filter": "~gty\\.im/.+~i",
		"endpoint": "http://embed.gettyimages.com/oembed?url=:url"
	},
	"neuerituale": {
		"class": "OpenGraph",
		"filter": "~neuerituale\\.com.?~i"
	}
}

Field settings

Fields > embed > Details The FieldtypeOembed extends the FieldtypeURL (core). In addition to these settings, you can also set the cache time for the oembed data. The lazycron will update the data.

Fieldsettings

Field preview

Fieldpreview

API


Returns the Oembed object (WireData).

/** @var \ProcessWire\Oembed */
$page->embed

Check emptiness

/** @var boolean **/
$page->embed->empty

Render

/** @var string return the html from oembed result */
"$page->embed"
$page->embed->html

The Oembed object


// print_r($page->embed);

ProcessWire\Oembed Object
(
    [data] => Array
        (
            [empty] => false
            [url] => http://www.youtube.com/watch?v=dQw4w9WgXcQ
            [html] => '...'
            [type] => video
            [title] => Rick Astley - Never Gonna Give You Up (Video)
            [width] => 200
            [height] => 113
            [version] => 1.0
            [authorUrl] => https://www.youtube.com/user/RickAstleyVEVO
            [authorName] => RickAstleyVEVO
            [providerUrl] => https://www.youtube.com/
            [providerName] => YouTube
            [thumbnailUrl] => https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg
            [thumbnailWidth] => 480
            [thumbnailHeight] => 360
        )
)

Find pages


You can query the oembed result fields

$pages->find('embed.providerName=YouTube');
$pages->find('embed.width>=200');

GraphQLFieldtypeOembed


You can query this field over ProcessGraphQL.
Please install the additional module GraphQLFieldtypeOembed.

Field definitions

myfield {
   empty: Boolean
   title: String
   authorName: String
   authorUrl: String
   type: String
   height: Int
   width: Int
   providerName: String
   providerUrl: String
   thumbnailHeight: Int
   thumbnailWidth: Int
   thumbnailUrl: String
   html: String
   url: String
}

Install and use modules at your own risk. Always have a site and database backup before installing new modules.

Twitter updates

  • Today a new version of FormBuilder has been released in the FormBuilder support board (our 50th version) and it has a lot of interesting new features, which we’ll take a closer look at in this post— More
    11 June 2021
  • ProcessWire 3.0.179 adds great new admin theme customization tools that put you in full control over the Uikit admin styles— More
    28 May 2021
  • ProcessWire updates for week of 21 May 2021— More
    22 May 2021

Latest news

  • ProcessWire Weekly #370
    In the 370th issue of ProcessWire Weekly we're going to check out the latest version of the commercial FormBuilder module, introduce a couple of brand new third party modules, and more. Read on!
    Weekly.pw / 12 June 2021
  • ProcessWire FormBuilder v50 updates
    Today a new version of FormBuilder has been released in the FormBuilder support board (our 50th version) and it has a lot of interesting new features, which we'll take a closer look at in this post.
    Blog / 11 June 2021
  • Subscribe to weekly ProcessWire news

“To Drupal, or to ProcessWire? The million dollar choice. We decided to make an early switch to PW. And in retrospect, ProcessWire was probably the best decision we made. Thanks are due to ProcessWire and the amazing system and set of modules that are in place.” —Unni Krishnan, Founder of PigtailPundits