Some issues discovered with linkinfo module, and update the doco about using object modules in addons; as there were a couple of surprises.
This commit is contained in:
parent
5a427dcee3
commit
a3ce194bf5
@ -111,7 +111,7 @@ class Linkinfo extends \Zotlabs\Web\Controller {
|
|||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
$siteinfo = parseurl_getsiteinfo($url);
|
$siteinfo = self::parseurl_getsiteinfo($url);
|
||||||
|
|
||||||
// If this is a Red site, use zrl rather than url so they get zids sent to them by default
|
// If this is a Red site, use zrl rather than url so they get zids sent to them by default
|
||||||
|
|
||||||
@ -172,14 +172,14 @@ class Linkinfo extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function deletexnode(&$doc, $node) {
|
public static function deletexnode(&$doc, $node) {
|
||||||
$xpath = new DomXPath($doc);
|
$xpath = new \DomXPath($doc);
|
||||||
$list = $xpath->query("//".$node);
|
$list = $xpath->query("//".$node);
|
||||||
foreach ($list as $child)
|
foreach ($list as $child)
|
||||||
$child->parentNode->removeChild($child);
|
$child->parentNode->removeChild($child);
|
||||||
}
|
}
|
||||||
|
|
||||||
function completeurl($url, $scheme) {
|
public static function completeurl($url, $scheme) {
|
||||||
$urlarr = parse_url($url);
|
$urlarr = parse_url($url);
|
||||||
|
|
||||||
if (isset($urlarr["scheme"]))
|
if (isset($urlarr["scheme"]))
|
||||||
@ -207,7 +207,7 @@ class Linkinfo extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function parseurl_getsiteinfo($url) {
|
public static function parseurl_getsiteinfo($url) {
|
||||||
$siteinfo = array();
|
$siteinfo = array();
|
||||||
|
|
||||||
|
|
||||||
@ -221,22 +221,22 @@ class Linkinfo extends \Zotlabs\Web\Controller {
|
|||||||
$body = mb_convert_encoding($body, 'UTF-8', 'UTF-8');
|
$body = mb_convert_encoding($body, 'UTF-8', 'UTF-8');
|
||||||
$body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
|
$body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
|
||||||
|
|
||||||
$doc = new DOMDocument();
|
$doc = new \DOMDocument();
|
||||||
@$doc->loadHTML($body);
|
@$doc->loadHTML($body);
|
||||||
|
|
||||||
$this->deletexnode($doc, 'style');
|
self::deletexnode($doc, 'style');
|
||||||
$this->deletexnode($doc, 'script');
|
self::deletexnode($doc, 'script');
|
||||||
$this->deletexnode($doc, 'option');
|
self::deletexnode($doc, 'option');
|
||||||
$this->deletexnode($doc, 'h1');
|
self::deletexnode($doc, 'h1');
|
||||||
$this->deletexnode($doc, 'h2');
|
self::deletexnode($doc, 'h2');
|
||||||
$this->deletexnode($doc, 'h3');
|
self::deletexnode($doc, 'h3');
|
||||||
$this->deletexnode($doc, 'h4');
|
self::deletexnode($doc, 'h4');
|
||||||
$this->deletexnode($doc, 'h5');
|
self::deletexnode($doc, 'h5');
|
||||||
$this->deletexnode($doc, 'h6');
|
self::deletexnode($doc, 'h6');
|
||||||
$this->deletexnode($doc, 'ol');
|
self::deletexnode($doc, 'ol');
|
||||||
$this->deletexnode($doc, 'ul');
|
self::deletexnode($doc, 'ul');
|
||||||
|
|
||||||
$xpath = new DomXPath($doc);
|
$xpath = new \DomXPath($doc);
|
||||||
|
|
||||||
//$list = $xpath->query("head/title");
|
//$list = $xpath->query("head/title");
|
||||||
$list = $xpath->query("//title");
|
$list = $xpath->query("//title");
|
||||||
@ -303,7 +303,7 @@ class Linkinfo extends \Zotlabs\Web\Controller {
|
|||||||
foreach ($node->attributes as $attribute)
|
foreach ($node->attributes as $attribute)
|
||||||
$attr[$attribute->name] = $attribute->value;
|
$attr[$attribute->name] = $attribute->value;
|
||||||
|
|
||||||
$src = $this->completeurl($attr["src"], $url);
|
$src = self::completeurl($attr["src"], $url);
|
||||||
$photodata = @getimagesize($src);
|
$photodata = @getimagesize($src);
|
||||||
|
|
||||||
if (($photodata) && ($photodata[0] > 150) and ($photodata[1] > 150)) {
|
if (($photodata) && ($photodata[0] > 150) and ($photodata[1] > 150)) {
|
||||||
@ -322,7 +322,7 @@ class Linkinfo extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$src = $this->completeurl($siteinfo["image"], $url);
|
$src = self::completeurl($siteinfo["image"], $url);
|
||||||
|
|
||||||
unset($siteinfo["image"]);
|
unset($siteinfo["image"]);
|
||||||
|
|
||||||
|
@ -208,10 +208,16 @@ Sometimes your plugins want to provide a range of new functionality which isn't
|
|||||||
|
|
||||||
There are two ways to accomplish this. To create a module object use the following model:
|
There are two ways to accomplish this. To create a module object use the following model:
|
||||||
[code]
|
[code]
|
||||||
|
<?php /* file: addon/randplace/Mod_Randplace.php */
|
||||||
|
namespace Zotlabs\Module;
|
||||||
|
|
||||||
// Your module will consist of the name of your addon with an uppercase first character, within the Zotlabs\Module namespace
|
// Your module will consist of the name of your addon with an uppercase first character, within the Zotlabs\Module namespace
|
||||||
|
// To avoid namespace conflicts with your plugin, the convention we're using is to name the module file Mod_Addonname.php
|
||||||
|
// In this case 'Mod_Randplace.php' and then include it from within your main plugin file 'randplace.php' with the line:
|
||||||
|
//
|
||||||
|
// require_once('addon/randplace/Mod_Randplace.php');
|
||||||
|
|
||||||
class Zotlabs\Module\Randplace extends Zotlabs\Web\Controller {
|
class Randplace extends \Zotlabs\Web\Controller {
|
||||||
function init() {
|
function init() {
|
||||||
// init method is always called first if it exists
|
// init method is always called first if it exists
|
||||||
}
|
}
|
||||||
@ -226,7 +232,9 @@ There are two ways to accomplish this. To create a module object use the followi
|
|||||||
[/code]
|
[/code]
|
||||||
|
|
||||||
The other option is to use a procedural interface. The $a argument to these function is obsolete, but must be present.
|
The other option is to use a procedural interface. The $a argument to these function is obsolete, but must be present.
|
||||||
The key to this is to create a simple function named pluginname_module() which does nothing.
|
The key to this is to create a simple function named pluginname_module() which does nothing. These lines and this interface
|
||||||
|
can be used inside your addon file without causing a namespace conflict, as the object method will.
|
||||||
|
|
||||||
[code]
|
[code]
|
||||||
function randplace_module() { return; }
|
function randplace_module() { return; }
|
||||||
[/code]
|
[/code]
|
||||||
|
Reference in New Issue
Block a user