Jump to content
ryan

Module: Video embed for YouTube/Vimeo (TextformatterVideoEmbed)

Recommended Posts

Agreed with Martijn, that's probably better in most (if not all) cases. If you really want to use this module, something like this should work too:

if ($page->your_field) {
    $value = "<p>" . $page->your_field . "</p>";
    $modules->get('TextformatterVideoEmbed')->format($value);
    if (strpos($value, "<p>") !== 0) echo $value;
}

Only benefits of that approach would be having a common way to present videos on your site, and using oEmbed instead of relying on your own case-by-case embed codes. Other than that, I don't really see much value in it :)

  • Like 1

Share this post


Link to post
Share on other sites

The other option would be to change the regex in the module. This is what I use in Get Video Thumbs and it works fine with plain text (URL) and Textarea fields:

/\s*(?:http(?:s)?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(??:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?#&\"'<>]+)/

That said, I agree with Martijn's approach :)

  • Like 1

Share this post


Link to post
Share on other sites

Hi everyone, 

I wrote, after install module and format Video embed in details.

Could I write a php line to see video on my browser page of Processwire?

Like:

. . .

<div class="video-container"><?php echo $page->video_field->url; ?></div>
. . .
 
Thanks

Share this post


Link to post
Share on other sites

Don't use the formatter. Why not simply use:

<iframe width="560" height="315" src="<?php echo $page->your_field; ?>" frameborder="0" allowfullscreen></iframe> 

But that doesn't help much with inline Videos which are put somewhere, whereever in whatever textarea?

Unless in combination with Hanna Code ... !

Btw. I made this module to be able to adjust some youtube embed options (my very first module btw.) ... https://github.com/blynx/TextformatterVideoEmbedOptions

Not super useful - but for now it works in my project. I am thinking about how to make this thing actually useful considering real use cases.

edit:

I already found some stupid elementary glitches in my module I will fix soon.

And also as an reply to below: But what about many different videos pasted into one single articel‽ : )

Edited by blynx
  • Like 2

Share this post


Link to post
Share on other sites

But that doesn't help much with inline Videos which are put somewhere, whereever in whatever textarea?

Unless in combination with Hanna Code ... !

Aenean lacinia bibendum nulla sed consectetur. Nullam quis risus eget urna mollis ornare vel eu leo. Cras justo odio, dapibus ac facilisis in, egestas eget quam. {video} Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
$search = '{video}';
$replace = "<iframe width='560' height='315' src='$page->your_field' frameborder='0' allowfullscreen></iframe>";

str_replace($search, $replace, $page->body);
  • Like 3

Share this post


Link to post
Share on other sites

This module doesn't work with URLs with format http://www.youtube.com/watch?v=<video-id>, because oembed service doesn't recognize such URLs. I changed in module source the way of building $oembedURL:

$videoID = $matches[2][$key]; 
$oembedURL = "http://www.youtube.com/oembed?url=" . urlencode("http://youtube.com/watch?v=" . $videoID) . "&format=json&maxwidth={$this->maxWidth}&maxheight={$this->maxHeight}"; 
  • Like 1

Share this post


Link to post
Share on other sites

Hi there,

This has always worked without a hitch, but I'm a bit stumped now. I'm using this for the body field, I have a youtube URL in a paragraph, but I can't get the player to show, just the URL text as is.

I then tried with a Vimeo video, no luck there either, but in that case it creates the TextformatterVideoEmbed div (<div class="TextformatterVideoEmbed"></div>), but the div has no content. I'm running PW 2.6.1 and the latest version of TextformatterVideoEmbed. 

Any idea what's going on here?

Share this post


Link to post
Share on other sites

Hi @nikoka,

my setup (PW 2.6.10 / TextformatterVideoEmbed 1.0.9) delivers the same effect. Did you find a solution outputting the oembed code?

Cheers, Chris

Share this post


Link to post
Share on other sites

Hi @inspeCTor,

I'm afraid I didn't, remains a mystery, I haven't had this problem before or after. Spent some time figuring out what could be different with this one installation, but there shouldn't be anything special there.

Please do report if you find some clues, thanks!

Share this post


Link to post
Share on other sites

Diagnostics module shows

textformatter_video_embed
InnoDB / latin1_swedish_ci Rows: 24
Data: 16.00 KB
Index: 0 bytes Warning Character set mismatch with connection. This might lead to data corruption. Sanitise your data to match latin1 before sending it to the DB.

 any ideas how to fix this?

Share this post


Link to post
Share on other sites

Hi there,

This has always worked without a hitch, but I'm a bit stumped now. I'm using this for the body field, I have a youtube URL in a paragraph, but I can't get the player to show, just the URL text as is.

Same here. PW 2.6.17 

It still works with my local server, but stopped working on the web server.

That's why I switched to "Hanna Code" for YouTube embeds now.

(I had to, because by using the text editor source-button as a workaround, the HTML Purifier seems to strip out iframes inside of inline editor fields. And I couldn't figure out how to allow this with the HTML Purifier settings.)

Share this post


Link to post
Share on other sites

..(I had to, because the HTML Purifier seems to strip out iframes inside of inline editor fields. And I couldn't figure out how to allow this with the HTML Purifier settings.)

Have a read here...but good to read the whole thread

Share this post


Link to post
Share on other sites

Thanks! @kongondo

I already stumbled over this thread and your helpful post.

In my case I couldn't disable the HTML Purifier, because it is mandatory with inline editor fields. 

But I'm happy with the Hanna Code workaround so far. 

P.s. For everyone, who also wants to embed responsive videos manually. You can use the html and style like the video embed module does:

<div class="VideoEmbed" style="position:relative;padding:30px 0 56.25% 0;height:0;overflow:hidden;">
<iframe style="position:absolute;top:0;left:0;width:100%;height:100%;" width="640" height="360" src="https://www.youtube.com/embed/yourvideoidhere" frameborder="0" allowfullscreen=""></iframe>
</div>
  • Like 2

Share this post


Link to post
Share on other sites

When I open a page with video embedded, I get this: 

Error: Class 'mysqli' not found (line 23 of /home/gocinet/public_html/wire/core/Database.php) 

Same error when I access the module settings page in the backend.

PW 2.7.0. This only happens on the live server, not on my dev machine. So it seems to be server related.

Any pointers on how to solve this would be great. Thank you.

EDIT: I just discovered that mysqli support is not installed on the live server (godaddy VPS). Installing it should solve the problem.

Share this post


Link to post
Share on other sites

That error says that you don't have the mysqli php extension installed on the server. I can't see the source for this module right now as Github is down, but I expect it is using mysqli instead of PDO which is what the PW core now uses.

So I am guessing this module needs an update to use PDO. Change any instances of $db to $database. Although I am surprised that this module uses any direct db calls. Are you sure it's actually this module that is the problem?

Share this post


Link to post
Share on other sites

thank you adrian. I will give the renaming a try.

Yes, I'm sure that it is this module because the error throws only on pages with embedded video and on the settings page for the module in the backend.

The module officially supports PW only up to 2.4. That may be why it is not using PDO. 

EDIT: rnaming $db to $database didn't help.

$db is initialized in the module with

$db = wire('db');

Share this post


Link to post
Share on other sites

Did you try:

$database = wire('database');

You may also need to modify the sql queries to work with PDO. If you're not familiar with the needed changes, a quick google should get you going :)

Once you get it working, a PR for Ryan might nice :)

Share this post


Link to post
Share on other sites

I have converted the relevant db query code to PDO and will issue a pull request.

  • Like 2

Share this post


Link to post
Share on other sites

I am having a problem getting this to work inside a repeater.  Is that a known issue?  It is just printing out the url.

Share this post


Link to post
Share on other sites

I really love the TextformatterVideoEmbed module.

I was wondering, Ryan, if you could modify the module to handle both youtube video id's and youtube playlist id's?

Before I dig into the code on the module, I figured I would ask if you could consider making this an upgrade to the module as it would be very handy. Rather than fork it to a new module, it looks like a simple addition you could make to the 'official' module that would be very beneficial:

A good example, where this is handy, is like on a news site I've built, the reporters may take 3 videos of a two hour county commission meeting and upload them to YouTube and instead of dropping in 3 videos into a news page, they could drop in a youtube playlist.

Thanks a bunch for the consideration!

Edited by LostKobrakai
Moved to the correct support topic of the module

Share this post


Link to post
Share on other sites

Hello holmescreek,

With people having such busy schedules these days, why not fork the module & make any necessary changes to your GitHub repository. You don't have to advertise your fork, or even enter it into the module repository. You could, instead, issue a pull request to the original repository so that Ryan could then see how much/little needs to be done to add your change back into the official module. Once the changes get incorporated, it is then just a matter of deleting your GitHub repository.

Best wishes,

Steve

  • Like 2

Share this post


Link to post
Share on other sites

I forked the module to make the module settings maxWidth and maxHeight work in Responsive mode:

https://github.com/rolandtoth/TextformatterVideoEmbed

Basically it adds an extra wrapper div which max-width and max-height inline CSS is set to what you put in module settings. Also the hard-coded 56.25% aspect ratio is calculated from these values.

Share this post


Link to post
Share on other sites

I have used Ryan's VIDEO EMBED FOR YOUTUBE/VIMEO numerous times in various projects and I always love it. However, I went to install it on a 3.0.15 fresh install, and it is saying it cant install it due to it already existing. Has anyone else run into this before? For the life of me, I can not find it in the database.

Share this post


Link to post
Share on other sites

I can't seem to get this module to load in the backoffice module section, I downloaded and put it in my module folder, then in the backoffice it does not recognise it? Do I need to change file extion name or? any help would be great!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By eelkenet
      Hi! I've created a small Inputfield module called InputfieldFloatRange which allows you to use an HTML5 <input type="range" ../> slider as an InputField. I needed something like this for a project where the client needs to be able to tweak this value more based on 'a feeling' than just entering a boring old number. Maybe more people can use this so I'm hereby releasing it into the wild.  
       
      What is it?
      The missing range slider Inputfield for Processwire. 
      What does it do?
      This module extends InputfieldFloat and allows you to use HTML5 range sliders for number fields in your templates.
      It includes a visible and editable value field, to override/tweak the value if required.  
      Features
      Min/max values Precision (number of decimals) Steps (Read more) Manual override of the selected value (will still adhere to the rules above) Usage
      Clone / zip repo Install FieldtypeFloatRange, this automatically installs the Inputfield Create new field of type `Float (range)` or convert an existing `Float`, `Integer` or `Text` field. To render the field's value simply echo `$page->field` Demo
      A field with Min=0, Max=1, Step=0.2, Precision=2

      Field with settings Min=0, Max=200, Step=0.25, Precision=2

       
      Todo
      Make the display-field's size configurable (will use the Input Size field setting)  Hopefully become redundant If it's usable for others I'll add it to the Modules list  
      Changelog
      v002
      - Fix issue where setting the step value to an empty value created problem with validation
      - Make the display-field optional 
      v001
      - Initial release
       
      Thanks!
       
       
    • By Robin S
      Another little admin helper module...
      Template Field Widths
      Adds a "Field widths" field to Edit Template that allows you to quickly set the widths of inputfields in the template.

      Why?
      When setting up a new template or trying out different field layouts I find it a bit slow and tedious to have to open each field individually in a modal just to set the width. This module speeds up the process.
      Installation
      Install the Template Field Widths module.
      Config options
      You can set the default presentation of the "Field widths" field to collapsed or open. Field widths entered into the Template Field Widths inputfield are only applied if the Edit Template form is submitted with the Template Field Widths inputfield in an opened state. "Collapsed" is the recommended setting if you think you might also use core inputs for setting field widths in a template context. You can choose Name or Label as the primary identifier shown for the field. The unchosen alternative will become the title attribute shown on hover. You can choose to show the original field width next to the template context field width.  
      https://github.com/Toutouwai/TemplateFieldWidths
      https://modules.processwire.com/modules/template-field-widths/
    • By NehaPillai
      Hello Everyone, I was trying to update SEO meta title, description and meta keywords for my website in Process Wire CMS but it saving in the backend but it is not reflecting on my website, Please help me regarding this error. Please find below attached screen shot for your ref. TIA.


    • By adrian
      Tracy Debugger for ProcessWire
      The ultimate “swiss army knife” debugging and development tool for the ProcessWire CMF/CMS

       
      Integrates and extends Nette's Tracy debugging tool and adds 35+ custom tools designed for effective ProcessWire debugging and lightning fast development
      The most comprehensive set of instructions and examples is available at: https://adrianbj.github.io/TracyDebugger
      Modules Directory: http://modules.processwire.com/modules/tracy-debugger/
      Github: https://github.com/adrianbj/TracyDebugger
      A big thanks to @tpr for introducing me to Tracy and for the idea for this module and for significant feedback, testing, and feature suggestions.
×
×
  • Create New...