summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2009-11-30 08:09:30 -0800
committerBrion Vibber <brion@pobox.com>2009-11-30 09:12:19 -0800
commit10f40661a2f517393331b554c2fec295c8c160e8 (patch)
tree78e77eb9025463410ce4f45747081316315515d4
parenta2e4ac2fe857dbc6cfc55b2fb86f5f848f144b26 (diff)
Ticket 1870: drop unnecessary Tidy module installation requirement.
Tidy was only being used by a couple of non-default URL shortener plugins, PtitUrl and TightUrl. Both were easily changed to load the tag-soup HTML via DOMDocument (using the default DOM module which is already used by other dependencies). Added xml, dom, and simplexml modules to the requirements check in install.php, as they were being used but not checked for. Also cleaned up LilUrl, PtitUrl, and TightUrl to return URL as a string instead of as a SimpleXML node object.
-rw-r--r--README2
-rw-r--r--install.php2
-rw-r--r--plugins/LilUrl/LilUrlPlugin.php2
-rw-r--r--plugins/PtitUrl/PtitUrlPlugin.php9
-rw-r--r--plugins/TightUrl/TightUrlPlugin.php9
-rw-r--r--plugins/UrlShortener/UrlShortenerPlugin.php8
6 files changed, 14 insertions, 18 deletions
diff --git a/README b/README
index eb1fb8cd7..51a8e91cc 100644
--- a/README
+++ b/README
@@ -98,7 +98,6 @@ released Aug 26 2009. Notable changes this version:
- Better error handling in Twitter posting.
- Show oEmbed data for XHTML files as well as plain HTML.
- Updated bug database link in README.
-- require HTML tidy extension.
- add support for HTTP Basic Auth in PHP CGI or FastCGI (e.g. GoDaddy).
- autofocus input to selected entry elements depending on page.
- updated layout for filter-by-tag form.
@@ -179,7 +178,6 @@ Your PHP installation must include the following PHP extensions:
- GD. For scaling down avatar images.
- mbstring. For handling Unicode (UTF-8) encoded strings.
- gettext. For multiple languages. Default on many PHP installs.
-- tidy. Used to clean up HTML/URLs for the URL shortener to consume.
For some functionality, you will also need the following extensions:
diff --git a/install.php b/install.php
index e7f7cf318..1c62bb2b2 100644
--- a/install.php
+++ b/install.php
@@ -301,7 +301,7 @@ function checkPrereqs()
}
$reqs = array('gd', 'curl',
- 'xmlwriter', 'mbstring','tidy');
+ 'xmlwriter', 'mbstring', 'xml', 'dom', 'simplexml');
foreach ($reqs as $req) {
if (!checkExtension($req)) {
diff --git a/plugins/LilUrl/LilUrlPlugin.php b/plugins/LilUrl/LilUrlPlugin.php
index e906751e8..4a6f1cdc7 100644
--- a/plugins/LilUrl/LilUrlPlugin.php
+++ b/plugins/LilUrl/LilUrlPlugin.php
@@ -54,7 +54,7 @@ class LilUrlPlugin extends UrlShortenerPlugin
if (!isset($y->body)) return;
$x = $y->body->p[0]->a->attributes();
if (isset($x['href'])) {
- return $x['href'];
+ return strval($x['href']);
}
}
}
diff --git a/plugins/PtitUrl/PtitUrlPlugin.php b/plugins/PtitUrl/PtitUrlPlugin.php
index ef453e96d..76a438dd5 100644
--- a/plugins/PtitUrl/PtitUrlPlugin.php
+++ b/plugins/PtitUrl/PtitUrlPlugin.php
@@ -47,11 +47,14 @@ class PtitUrlPlugin extends UrlShortenerPlugin
{
$response = $this->http_get(sprintf($this->serviceUrl,urlencode($url)));
if (!$response) return;
- $response = $this->tidy($response);
- $y = @simplexml_load_string($response);
+ $dom = new DOMDocument();
+ @$dom->loadHTML($response);
+ $y = @simplexml_import_dom($dom);
if (!isset($y->body)) return;
$xml = $y->body->center->table->tr->td->pre->a->attributes();
- if (isset($xml['href'])) return $xml['href'];
+ if (isset($xml['href'])) {
+ return strval($xml['href']);
+ }
}
}
diff --git a/plugins/TightUrl/TightUrlPlugin.php b/plugins/TightUrl/TightUrlPlugin.php
index 56414c8c8..6ced9afdc 100644
--- a/plugins/TightUrl/TightUrlPlugin.php
+++ b/plugins/TightUrl/TightUrlPlugin.php
@@ -48,10 +48,13 @@ class TightUrlPlugin extends UrlShortenerPlugin
{
$response = $this->http_get(sprintf($this->serviceUrl,urlencode($url)));
if (!$response) return;
- $response = $this->tidy($response);
- $y = @simplexml_load_string($response);
+ $dom = new DOMDocument();
+ @$dom->loadHTML($response);
+ $y = @simplexml_import_dom($dom);
if (!isset($y->body)) return;
$xml = $y->body->p[0]->code[0]->a->attributes();
- if (isset($xml['href'])) return $xml['href'];
+ if (isset($xml['href'])) {
+ return strval($xml['href']);
+ }
}
}
diff --git a/plugins/UrlShortener/UrlShortenerPlugin.php b/plugins/UrlShortener/UrlShortenerPlugin.php
index 37206aa89..027624b7a 100644
--- a/plugins/UrlShortener/UrlShortenerPlugin.php
+++ b/plugins/UrlShortener/UrlShortenerPlugin.php
@@ -68,14 +68,6 @@ abstract class UrlShortenerPlugin extends Plugin
return $response->getBody();
}
- protected function tidy($response) {
- $response = str_replace('&nbsp;', ' ', $response);
- $config = array('output-xhtml' => true);
- $tidy = new tidy;
- $tidy->parseString($response, $config, 'utf8');
- $tidy->cleanRepair();
- return (string)$tidy;
- }
//------------Below are the methods that connect StatusNet to the implementing Url Shortener plugin------------\\
function onInitializePlugin(){