New addon "convpath": It converts all local links according to the current scheme (http/https)

This commit is contained in:
Michael Vogel 2012-04-09 21:28:11 +02:00
parent be9f1fb659
commit c9ccd91dd9
3 changed files with 63 additions and 4 deletions

7
convpath/README Executable file
View file

@ -0,0 +1,7 @@
convpath
This addon converts all internal paths according to the current scheme.
That means that if a page is called via https then all internal links are also converted into https.
Same happens when you call your page with http.

50
convpath/convpath.php Normal file
View file

@ -0,0 +1,50 @@
<?php
/**
* Name: Convert Paths
* Description: Converts all internal paths according to the current scheme (http or https)
* Version: 1.0
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
*
*/
function convpath_install() {
register_hook('page_end', 'addon/convpath/convpath.php', 'convpath_page_end');
register_hook('page_header', 'addon/convpath/convpath.php', 'convpath_page_header');
}
function convpath_uninstall() {
unregister_hook('page_end', 'addon/convpath/convpath.php', 'convpath_page_end');
unregister_hook('page_header', 'addon/convpath/convpath.php', 'convpath_page_header');
}
function convpath_page_header(&$a, &$o){
$o = convpath_convert($o);
}
function convpath_page_end(&$a, &$o){
$o = convpath_convert($o);
$a->page['aside'] = convpath_convert($a->page['aside']);
}
/*
Converts a given path according to the current scheme
*/
function convpath_convert($path) {
global $a;
if ($path == "")
return("");
$ssl = (substr($a->get_baseurl(), 0, 8) == "https://");
if ($ssl) {
$search = "http://".$a->get_hostname();
$replace = "https://".$a->get_hostname();
} else {
$search = "https://".$a->get_hostname();
$replace = "http://".$a->get_hostname();
}
$path = str_replace($search, $replace, $path);
return($path);
}

View file

@ -1447,11 +1447,13 @@ function fb_consume_stream($uid,$j,$wall = false) {
//if(($datarray['body'] != '') and ($uid == 1)) //if(($datarray['body'] != '') and ($uid == 1))
// $datarray['body'] .= "[noparse]".print_r($entry, true)."[/noparse]"; // $datarray['body'] .= "[noparse]".print_r($entry, true)."[/noparse]";
if ($entry->place->name or $entry->place->location->street or
$entry->place->location->city or $entry->place->location->Denmark) {
$datarray['coord'] = '';
if ($entry->place->name) if ($entry->place->name)
$datarray['coord'] = $entry->place->name; $datarray['coord'] .= $entry->place->name;
else if ($entry->place->location->street or $entry->place->location->city or $entry->place->location->Denmark) {
if ($entry->place->location->street) if ($entry->place->location->street)
$datarray['coord'] = $entry->place->location->street; $datarray['coord'] .= $entry->place->location->street;
if ($entry->place->location->city) if ($entry->place->location->city)
$datarray['coord'] .= " ".$entry->place->location->city; $datarray['coord'] .= " ".$entry->place->location->city;
if ($entry->place->location->country) if ($entry->place->location->country)