move function deletenode() to the xml class

This commit is contained in:
rabuzarus 2016-11-27 20:19:43 +01:00
parent c96a53b4b4
commit 56e38dd6bd
3 changed files with 45 additions and 44 deletions

View File

@ -12,6 +12,7 @@ use \Friendica\Core\Config;
require_once("include/network.php"); require_once("include/network.php");
require_once("include/Photo.php"); require_once("include/Photo.php");
require_once("include/oembed.php"); require_once("include/oembed.php");
require_once("include/xml.php");
/** /**
* @brief Class with methods for extracting certain content from an url * @brief Class with methods for extracting certain content from an url
@ -184,17 +185,17 @@ class ParseUrl {
$doc = new \DOMDocument(); $doc = new \DOMDocument();
@$doc->loadHTML($body); @$doc->loadHTML($body);
self::deleteNode($doc, "style"); \xml::deleteNode($doc, "style");
self::deleteNode($doc, "script"); \xml::deleteNode($doc, "script");
self::deleteNode($doc, "option"); \xml::deleteNode($doc, "option");
self::deleteNode($doc, "h1"); \xml::deleteNode($doc, "h1");
self::deleteNode($doc, "h2"); \xml::deleteNode($doc, "h2");
self::deleteNode($doc, "h3"); \xml::deleteNode($doc, "h3");
self::deleteNode($doc, "h4"); \xml::deleteNode($doc, "h4");
self::deleteNode($doc, "h5"); \xml::deleteNode($doc, "h5");
self::deleteNode($doc, "h6"); \xml::deleteNode($doc, "h6");
self::deleteNode($doc, "ol"); \xml::deleteNode($doc, "ol");
self::deleteNode($doc, "ul"); \xml::deleteNode($doc, "ul");
$xpath = new \DomXPath($doc); $xpath = new \DomXPath($doc);
@ -440,14 +441,6 @@ class ParseUrl {
$tag = "#" . $tag; $tag = "#" . $tag;
} }
private static function deleteNode(&$doc, $node) {
$xpath = new \DomXPath($doc);
$list = $xpath->query("//".$node);
foreach ($list as $child) {
$child->parentNode->removeChild($child);
}
}
private static function completeUrl($url, $scheme) { private static function completeUrl($url, $scheme) {
$urlarr = parse_url($url); $urlarr = parse_url($url);

View File

@ -1,11 +1,14 @@
<?php <?php
/* /**
html2bbcode.php * @file include/html2bbcode.php
Converter for HTML to BBCode * @brief Converter for HTML to BBCode
Made by: ike@piratenpartei.de *
Originally made for the syncom project: http://wiki.piratenpartei.de/Syncom * Made by: ike@piratenpartei.de
https://github.com/annando/Syncom * Originally made for the syncom project: http://wiki.piratenpartei.de/Syncom
*/ * https://github.com/annando/Syncom
*/
require_once("include/xml.php");
function node2bbcode(&$doc, $oldnode, $attributes, $startbb, $endbb) function node2bbcode(&$doc, $oldnode, $attributes, $startbb, $endbb)
{ {
@ -76,15 +79,6 @@ function node2bbcodesub(&$doc, $oldnode, $attributes, $startbb, $endbb)
return($replace); return($replace);
} }
if(!function_exists('deletenode')) {
function deletenode(&$doc, $node)
{
$xpath = new DomXPath($doc);
$list = $xpath->query("//".$node);
foreach ($list as $child)
$child->parentNode->removeChild($child);
}}
function _replace_code_cb($m){ function _replace_code_cb($m){
return "<code>".str_replace("\n","<br>\n",$m[1]). "</code>"; return "<code>".str_replace("\n","<br>\n",$m[1]). "</code>";
} }
@ -117,12 +111,12 @@ function html2bbcode($message)
@$doc->loadHTML($message); @$doc->loadHTML($message);
deletenode($doc, 'style'); xml::deleteNode($doc, 'style');
deletenode($doc, 'head'); xml::deleteNode($doc, 'head');
deletenode($doc, 'title'); xml::deleteNode($doc, 'title');
deletenode($doc, 'meta'); xml::deleteNode($doc, 'meta');
deletenode($doc, 'xml'); xml::deleteNode($doc, 'xml');
deletenode($doc, 'removeme'); xml::deleteNode($doc, 'removeme');
$xpath = new DomXPath($doc); $xpath = new DomXPath($doc);
$list = $xpath->query("//pre"); $list = $xpath->query("//pre");
@ -239,7 +233,7 @@ function html2bbcode($message)
node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), '[iframe]$1', '[/iframe]'); node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), '[iframe]$1', '[/iframe]');
node2bbcode($doc, 'code', array(), '[code]', '[/code]'); node2bbcode($doc, 'code', array(), '[code]', '[/code]');
node2bbcode($doc, 'key', array(), '[code]', '[/code]'); node2bbcode($doc, 'key', array(), '[code]', '[/code]');
$message = $doc->saveHTML(); $message = $doc->saveHTML();

View File

@ -1,11 +1,12 @@
<?php <?php
/** /**
* @file include/xml.php * @file include/xml.php
*/ */
/** /**
* @brief This class contain functions to work with XML data * @brief This class contain methods to work with XML data
* *
*/ */
class xml { class xml {
@ -372,5 +373,18 @@ class xml {
return($xml_array); return($xml_array);
} }
/**
* @brief Delete a node in a XML object
*
* @param object $doc XML document
* @param string $node Node name
*/
public static function deleteNode(&$doc, $node) {
$xpath = new \DomXPath($doc);
$list = $xpath->query("//".$node);
foreach ($list as $child) {
$child->parentNode->removeChild($child);
}
}
} }
?>