Review changes
- Add file comment in Content\OEmbed - Add self where relevant - Remove useless spaces from the XPath expression
This commit is contained in:
parent
eb1b6605b7
commit
7e2a08c7bc
1 changed files with 15 additions and 12 deletions
|
@ -1,9 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* @file src/Content/OEmbed.php
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Friendica\Content;
|
namespace Friendica\Content;
|
||||||
|
@ -22,17 +20,22 @@ require_once 'include/dba.php';
|
||||||
require_once 'mod/proxy.php';
|
require_once 'mod/proxy.php';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of OEmbed
|
* Handles all OEmbed content fetching and replacement
|
||||||
*
|
*
|
||||||
* @author benlo
|
* OEmbed is a standard used to allow an embedded representation of a URL on
|
||||||
|
* third party sites
|
||||||
|
*
|
||||||
|
* @see https://oembed.com
|
||||||
|
*
|
||||||
|
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||||
*/
|
*/
|
||||||
class OEmbed
|
class OEmbed
|
||||||
{
|
{
|
||||||
public static function replaceCallback($matches)
|
public static function replaceCallback($matches)
|
||||||
{
|
{
|
||||||
$embedurl = $matches[1];
|
$embedurl = $matches[1];
|
||||||
$j = OEmbed::fetchURL($embedurl);
|
$j = self::fetchURL($embedurl);
|
||||||
$s = OEmbed::formatObject($j);
|
$s = self::formatObject($j);
|
||||||
|
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
@ -157,7 +160,7 @@ class OEmbed
|
||||||
public static function formatObject($j)
|
public static function formatObject($j)
|
||||||
{
|
{
|
||||||
$embedurl = $j->embedurl;
|
$embedurl = $j->embedurl;
|
||||||
$jhtml = OEmbed::iframe($j->embedurl, (isset($j->width) ? $j->width : null), (isset($j->height) ? $j->height : null));
|
$jhtml = self::iframe($j->embedurl, (isset($j->width) ? $j->width : null), (isset($j->height) ? $j->height : null));
|
||||||
$ret = "<span class='oembed " . $j->type . "'>";
|
$ret = "<span class='oembed " . $j->type . "'>";
|
||||||
switch ($j->type) {
|
switch ($j->type) {
|
||||||
case "video":
|
case "video":
|
||||||
|
@ -268,7 +271,7 @@ class OEmbed
|
||||||
}
|
}
|
||||||
$xpath = new DOMXPath($dom);
|
$xpath = new DOMXPath($dom);
|
||||||
|
|
||||||
$xattr = OEmbed::buildXPath("class", "oembed");
|
$xattr = self::buildXPath("class", "oembed");
|
||||||
$entries = $xpath->query("//span[$xattr]");
|
$entries = $xpath->query("//span[$xattr]");
|
||||||
|
|
||||||
$xattr = "@rel='oembed'"; //oe_build_xpath("rel","oembed");
|
$xattr = "@rel='oembed'"; //oe_build_xpath("rel","oembed");
|
||||||
|
@ -278,7 +281,7 @@ class OEmbed
|
||||||
$e->parentNode->replaceChild(new DOMText("[embed]" . $href . "[/embed]"), $e);
|
$e->parentNode->replaceChild(new DOMText("[embed]" . $href . "[/embed]"), $e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return OEmbed::getInnerHTML($dom->getElementsByTagName("body")->item(0));
|
return self::getInnerHTML($dom->getElementsByTagName("body")->item(0));
|
||||||
} else {
|
} else {
|
||||||
return $text;
|
return $text;
|
||||||
}
|
}
|
||||||
|
@ -329,7 +332,7 @@ class OEmbed
|
||||||
private static function buildXPath($attr, $value)
|
private static function buildXPath($attr, $value)
|
||||||
{
|
{
|
||||||
// https://www.westhoffswelt.de/blog/2009/6/9/select-html-elements-with-more-than-one-css-class-using-xpath
|
// https://www.westhoffswelt.de/blog/2009/6/9/select-html-elements-with-more-than-one-css-class-using-xpath
|
||||||
return "contains( normalize-space( @$attr ), ' $value ' ) or substring( normalize-space( @$attr ), 1, string-length( '$value' ) + 1 ) = '$value ' or substring( normalize-space( @$attr ), string-length( @$attr ) - string-length( '$value' ) ) = ' $value' or @$attr = '$value'";
|
return "contains(normalize-space(@$attr), ' $value ') or substring(normalize-space(@$attr), 1, string-length('$value') + 1) = '$value ' or substring(normalize-space(@$attr), string-length(@$attr) - string-length('$value')) = ' $value' or @$attr = '$value'";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue