forked from friendica/friendica-addons
102 lines
3.1 KiB
PHP
102 lines
3.1 KiB
PHP
<?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>
|
|
* Status: Unsupported
|
|
*/
|
|
|
|
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');
|
|
register_hook('ping_xmlize', 'addon/convpath/convpath.php', 'convpath_ping_xmlize_hook');
|
|
register_hook('prepare_body', 'addon/convpath/convpath.php', 'convpath_prepare_body_hook');
|
|
register_hook('display_item', 'addon/convpath/convpath.php', 'convpath_display_item_hook');
|
|
}
|
|
|
|
|
|
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');
|
|
unregister_hook('ping_xmlize', 'addon/convpath/convpath.php', 'convpath_ping_xmlize_hook');
|
|
unregister_hook('prepare_body', 'addon/convpath/convpath.php', 'convpath_prepare_body_hook');
|
|
unregister_hook('display_item', 'addon/convpath/convpath.php', 'convpath_display_item_hook');
|
|
}
|
|
|
|
function convpath_ping_xmlize_hook(&$a, &$o) {
|
|
$o["photo"] = convpath_url($a, $o["photo"]);
|
|
}
|
|
|
|
function convpath_page_header(&$a, &$o){
|
|
$o = convpath_convert($o);
|
|
}
|
|
|
|
function convpath_page_end(&$a, &$o){
|
|
$o = convpath_convert($o);
|
|
if (isset($a->page['aside']))
|
|
$a->page['aside'] = convpath_convert($a->page['aside']);
|
|
}
|
|
|
|
function convpath_prepare_body_hook(&$a, &$o) {
|
|
$o["html"] = convpath_convert($o["html"]);
|
|
}
|
|
|
|
function convpath_display_item_hook(&$a, &$o) {
|
|
if (isset($o["output"])) {
|
|
if (isset($o["output"]["thumb"]))
|
|
$o["output"]["thumb"] = convpath_url($a, $o["output"]["thumb"]);
|
|
if (isset($o["output"]["author-avatar"]))
|
|
$o["output"]["author-avatar"] = convpath_url($a, $o["output"]["author-avatar"]);
|
|
if (isset($o["output"]["owner-avatar"]))
|
|
$o["output"]["owner-avatar"] = convpath_url($a, $o["output"]["owner-avatar"]);
|
|
if (isset($o["output"]["owner_photo"]))
|
|
$o["output"]["owner_photo"] = convpath_url($a, $o["output"]["owner_photo"]);
|
|
}
|
|
}
|
|
|
|
function convpath_url($a, $path) {
|
|
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);
|
|
}
|
|
|
|
/*
|
|
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();
|
|
}
|
|
$searcharr = array("src='".$search, 'src="'.$search);
|
|
$replacearr = array("src='".$replace, 'src="'.$replace);
|
|
$path = str_replace($searcharr, $replacearr, $path);
|
|
|
|
//$path = str_replace($search, $replace, $path);
|
|
|
|
return($path);
|
|
}
|