initial doco
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
|
||||
// retrieve a "family" of config variables from database to cached storage
|
||||
|
||||
if(! function_exists('load_config')) {
|
||||
function load_config($family) {
|
||||
global $a;
|
||||
$r = q("SELECT * FROM `config` WHERE `cat` = '%s'", dbesc($family));
|
||||
@@ -32,7 +31,7 @@ function load_config($family) {
|
||||
// Negative caching
|
||||
$a->config[$family] = "!<unset>!";
|
||||
}
|
||||
}}
|
||||
}
|
||||
|
||||
// get a particular config variable given the family name
|
||||
// and key. Returns false if not set.
|
||||
@@ -42,7 +41,7 @@ function load_config($family) {
|
||||
// local config cache, pull it into the cache so we don't have
|
||||
// to hit the DB again for this item.
|
||||
|
||||
if(! function_exists('get_config')) {
|
||||
|
||||
function get_config($family, $key, $instore = false) {
|
||||
|
||||
global $a;
|
||||
@@ -76,13 +75,13 @@ function get_config($family, $key, $instore = false) {
|
||||
$a->config[$family][$key] = '!<unset>!';
|
||||
}
|
||||
return false;
|
||||
}}
|
||||
}
|
||||
|
||||
// Store a config value ($value) in the category ($family)
|
||||
// under the key ($key)
|
||||
// Return the value, or false if the database update failed
|
||||
|
||||
if(! function_exists('set_config')) {
|
||||
|
||||
function set_config($family,$key,$value) {
|
||||
global $a;
|
||||
// manage array value
|
||||
@@ -111,10 +110,10 @@ function set_config($family,$key,$value) {
|
||||
if($ret)
|
||||
return $value;
|
||||
return $ret;
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(! function_exists('load_pconfig')) {
|
||||
function load_pconfig($uid,$family) {
|
||||
global $a;
|
||||
$r = q("SELECT * FROM `pconfig` WHERE `cat` = '%s' AND `uid` = %d",
|
||||
@@ -130,11 +129,11 @@ function load_pconfig($uid,$family) {
|
||||
// Negative caching
|
||||
$a->config[$uid][$family] = "!<unset>!";
|
||||
}
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if(! function_exists('get_pconfig')) {
|
||||
function get_pconfig($uid,$family, $key, $instore = false) {
|
||||
|
||||
global $a;
|
||||
@@ -170,9 +169,9 @@ function get_pconfig($uid,$family, $key, $instore = false) {
|
||||
$a->config[$uid][$family][$key] = '!<unset>!';
|
||||
}
|
||||
return false;
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
if(! function_exists('del_config')) {
|
||||
function del_config($family,$key) {
|
||||
|
||||
global $a;
|
||||
@@ -183,14 +182,14 @@ function del_config($family,$key) {
|
||||
dbesc($key)
|
||||
);
|
||||
return $ret;
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Same as above functions except these are for personal config storage and take an
|
||||
// additional $uid argument.
|
||||
|
||||
if(! function_exists('set_pconfig')) {
|
||||
|
||||
function set_pconfig($uid,$family,$key,$value) {
|
||||
|
||||
global $a;
|
||||
@@ -222,9 +221,9 @@ function set_pconfig($uid,$family,$key,$value) {
|
||||
if($ret)
|
||||
return $value;
|
||||
return $ret;
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
if(! function_exists('del_pconfig')) {
|
||||
function del_pconfig($uid,$family,$key) {
|
||||
|
||||
global $a;
|
||||
@@ -236,4 +235,4 @@ function del_pconfig($uid,$family,$key) {
|
||||
dbesc($key)
|
||||
);
|
||||
return $ret;
|
||||
}}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ require_once('include/datetime.php');
|
||||
*
|
||||
*/
|
||||
|
||||
if(! class_exists('dba')) {
|
||||
|
||||
class dba {
|
||||
|
||||
private $debug = 0;
|
||||
@@ -188,33 +188,33 @@ class dba {
|
||||
else
|
||||
mysql_close($this->db);
|
||||
}
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
if(! function_exists('printable')) {
|
||||
function printable($s) {
|
||||
$s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
|
||||
$s = str_replace("\x00",'.',$s);
|
||||
if(x($_SERVER,'SERVER_NAME'))
|
||||
$s = escape_tags($s);
|
||||
return $s;
|
||||
}}
|
||||
}
|
||||
|
||||
// Procedural functions
|
||||
if(! function_exists('dbg')) {
|
||||
|
||||
function dbg($state) {
|
||||
global $db;
|
||||
if($db)
|
||||
$db->dbg($state);
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
if(! function_exists('dbesc')) {
|
||||
function dbesc($str) {
|
||||
global $db;
|
||||
if($db && $db->connected)
|
||||
return($db->escape($str));
|
||||
else
|
||||
return(str_replace("'","\\'",$str));
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@ function dbesc($str) {
|
||||
// Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d",
|
||||
// 'user', 1);
|
||||
|
||||
if(! function_exists('q')) {
|
||||
|
||||
function q($sql) {
|
||||
|
||||
global $db;
|
||||
@@ -246,7 +246,7 @@ function q($sql) {
|
||||
logger('dba: no database: ' . print_r($args,true));
|
||||
return false;
|
||||
|
||||
}}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -254,7 +254,7 @@ function q($sql) {
|
||||
*
|
||||
*/
|
||||
|
||||
if(! function_exists('dbq')) {
|
||||
|
||||
function dbq($sql) {
|
||||
|
||||
global $db;
|
||||
@@ -263,7 +263,7 @@ function dbq($sql) {
|
||||
else
|
||||
$ret = false;
|
||||
return $ret;
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
// Caller is responsible for ensuring that any integer arguments to
|
||||
@@ -272,18 +272,18 @@ function dbq($sql) {
|
||||
// cast to int to avoid trouble.
|
||||
|
||||
|
||||
if(! function_exists('dbesc_array_cb')) {
|
||||
|
||||
function dbesc_array_cb(&$item, $key) {
|
||||
if(is_string($item))
|
||||
$item = dbesc($item);
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(! function_exists('dbesc_array')) {
|
||||
function dbesc_array(&$arr) {
|
||||
if(is_array($arr) && count($arr)) {
|
||||
array_walk($arr,'dbesc_array_cb');
|
||||
}
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6,10 +6,19 @@ function get_capath() {
|
||||
return appdirpath() . '/library/cacert.pem';
|
||||
}
|
||||
|
||||
|
||||
|
||||
// curl wrapper. If binary flag is true, return binary
|
||||
// results.
|
||||
/**
|
||||
* fetch_url is deprecated and being replaced by the more capable z_fetch_url
|
||||
* please use that function instead.
|
||||
* Once all occurrences of fetch_url are removed from the codebase we will
|
||||
* remove this function and perhaps rename z_fetch_url back to fetch_url
|
||||
*/
|
||||
|
||||
|
||||
|
||||
if(! function_exists('fetch_url')) {
|
||||
function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_content=Null) {
|
||||
|
||||
$a = get_app();
|
||||
@@ -98,11 +107,11 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
|
||||
$a->set_curl_headers($header);
|
||||
@curl_close($ch);
|
||||
return($body);
|
||||
}}
|
||||
}
|
||||
|
||||
// post request to $url. $params is an array of post variables.
|
||||
|
||||
if(! function_exists('post_url')) {
|
||||
|
||||
function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) {
|
||||
$a = get_app();
|
||||
$ch = curl_init($url);
|
||||
@@ -193,9 +202,9 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
|
||||
|
||||
curl_close($ch);
|
||||
return($body);
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
if(! function_exists('z_fetch_url')) {
|
||||
function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
|
||||
|
||||
$ret = array('return_code' => 0, 'success' => false, 'header' => "", 'body' => "");
|
||||
@@ -231,6 +240,10 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
|
||||
@curl_setopt($ch, CURLOPT_USERPWD, $opts['http_auth']);
|
||||
}
|
||||
|
||||
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,
|
||||
((x($opts,'novalidate') && intval($opts['novalidate'])) ? false : true));
|
||||
|
||||
|
||||
$prx = get_config('system','proxy');
|
||||
if(strlen($prx)) {
|
||||
@curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
|
||||
@@ -283,11 +296,11 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
|
||||
$ret['header'] = $header;
|
||||
@curl_close($ch);
|
||||
return($ret);
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if(! function_exists('z_post_url')) {
|
||||
function z_post_url($url,$params, $headers = null, $redirects = 0, $timeout = 0) {
|
||||
|
||||
$ret = array('return_code' => 0, 'success' => false, 'header' => "", 'body' => "");
|
||||
@@ -378,7 +391,7 @@ function z_post_url($url,$params, $headers = null, $redirects = 0, $timeout = 0)
|
||||
$ret['header'] = $header;
|
||||
curl_close($ch);
|
||||
return($ret);
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -394,7 +407,7 @@ function json_return_and_die($x) {
|
||||
// Outputs a basic dfrn XML status structure to STDOUT, with a <status> variable
|
||||
// of $st and an optional text <message> of $message and terminates the current process.
|
||||
|
||||
if(! function_exists('xml_status')) {
|
||||
|
||||
function xml_status($st, $message = '') {
|
||||
|
||||
$xml_message = ((strlen($message)) ? "\t<message>" . xmlify($message) . "</message>\r\n" : '');
|
||||
@@ -406,10 +419,10 @@ function xml_status($st, $message = '') {
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>'."\r\n";
|
||||
echo "<result>\r\n\t<status>$st</status>\r\n$xml_message</result>\r\n";
|
||||
killme();
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(! function_exists('http_status_exit')) {
|
||||
function http_status_exit($val) {
|
||||
|
||||
$err = '';
|
||||
@@ -422,13 +435,13 @@ function http_status_exit($val) {
|
||||
header($_SERVER["SERVER_PROTOCOL"] . ' ' . $val . ' ' . $err);
|
||||
killme();
|
||||
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
// convert an XML document to a normalised, case-corrected array
|
||||
// used by webfinger
|
||||
|
||||
if(! function_exists('convert_xml_element_to_array')) {
|
||||
|
||||
function convert_xml_element_to_array($xml_element, &$recursion_depth=0) {
|
||||
|
||||
// If we're getting too deep, bail out
|
||||
@@ -468,7 +481,7 @@ function convert_xml_element_to_array($xml_element, &$recursion_depth=0) {
|
||||
} else {
|
||||
return (trim(strval($xml_element)));
|
||||
}
|
||||
}}
|
||||
}
|
||||
|
||||
// Given an email style address, perform webfinger lookup and
|
||||
// return the resulting DFRN profile URL, or if no DFRN profile URL
|
||||
@@ -482,7 +495,7 @@ function convert_xml_element_to_array($xml_element, &$recursion_depth=0) {
|
||||
// amended 7/9/2011 to return an hcard which could save potentially loading
|
||||
// a lengthy content page to scrape dfrn attributes
|
||||
|
||||
if(! function_exists('webfinger_dfrn')) {
|
||||
|
||||
function webfinger_dfrn($s,&$hcard) {
|
||||
if(! strstr($s,'@')) {
|
||||
return $s;
|
||||
@@ -502,14 +515,14 @@ function webfinger_dfrn($s,&$hcard) {
|
||||
}
|
||||
}
|
||||
return $profile_link;
|
||||
}}
|
||||
}
|
||||
|
||||
// Given an email style address, perform webfinger lookup and
|
||||
// return the array of link attributes from the personal XRD file.
|
||||
// On error/failure return an empty array.
|
||||
|
||||
|
||||
if(! function_exists('webfinger')) {
|
||||
|
||||
function webfinger($s, $debug = false) {
|
||||
$host = '';
|
||||
if(strstr($s,'@')) {
|
||||
@@ -532,9 +545,9 @@ function webfinger($s, $debug = false) {
|
||||
}
|
||||
}
|
||||
return array();
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
if(! function_exists('lrdd')) {
|
||||
function lrdd($uri, $debug = false) {
|
||||
|
||||
$a = get_app();
|
||||
@@ -702,7 +715,7 @@ function lrdd($uri, $debug = false) {
|
||||
|
||||
return array();
|
||||
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -710,7 +723,7 @@ function lrdd($uri, $debug = false) {
|
||||
// host. Returns the LRDD template or an empty string on
|
||||
// error/failure.
|
||||
|
||||
if(! function_exists('fetch_lrdd_template')) {
|
||||
|
||||
function fetch_lrdd_template($host) {
|
||||
$tpl = '';
|
||||
|
||||
@@ -732,13 +745,13 @@ function fetch_lrdd_template($host) {
|
||||
if(! strpos($tpl,'{uri}'))
|
||||
$tpl = '';
|
||||
return $tpl;
|
||||
}}
|
||||
}
|
||||
|
||||
// Given a URL, retrieve the page as an XRD document.
|
||||
// Return an array of links.
|
||||
// on error/failure return empty array.
|
||||
|
||||
if(! function_exists('fetch_xrd_links')) {
|
||||
|
||||
function fetch_xrd_links($url) {
|
||||
|
||||
$xrd_timeout = intval(get_config('system','xrd_timeout'));
|
||||
@@ -783,14 +796,14 @@ function fetch_xrd_links($url) {
|
||||
|
||||
return $links;
|
||||
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
// Take a URL from the wild, prepend http:// if necessary
|
||||
// and check DNS to see if it's real (or check if is a valid IP address)
|
||||
// return true if it's OK, false if something is wrong with it
|
||||
|
||||
if(! function_exists('validate_url')) {
|
||||
|
||||
function validate_url(&$url) {
|
||||
|
||||
// no naked subdomains (allow localhost for tests)
|
||||
@@ -804,11 +817,11 @@ function validate_url(&$url) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}}
|
||||
}
|
||||
|
||||
// checks that email is an actual resolvable internet address
|
||||
|
||||
if(! function_exists('validate_email')) {
|
||||
|
||||
function validate_email($addr) {
|
||||
|
||||
if(get_config('system','disable_email_validation'))
|
||||
@@ -822,14 +835,14 @@ function validate_email($addr) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}}
|
||||
}
|
||||
|
||||
// Check $url against our list of allowed sites,
|
||||
// wildcards allowed. If allowed_sites is unset return true;
|
||||
// If url is allowed, return true.
|
||||
// otherwise, return false
|
||||
|
||||
if(! function_exists('allowed_url')) {
|
||||
|
||||
function allowed_url($url) {
|
||||
|
||||
$h = @parse_url($url);
|
||||
@@ -864,14 +877,14 @@ function allowed_url($url) {
|
||||
}
|
||||
}
|
||||
return $found;
|
||||
}}
|
||||
}
|
||||
|
||||
// check if email address is allowed to register here.
|
||||
// Compare against our list (wildcards allowed).
|
||||
// Returns false if not allowed, true if allowed or if
|
||||
// allowed list is not configured.
|
||||
|
||||
if(! function_exists('allowed_email')) {
|
||||
|
||||
function allowed_email($email) {
|
||||
|
||||
|
||||
@@ -898,10 +911,10 @@ function allowed_email($email) {
|
||||
}
|
||||
}
|
||||
return $found;
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(! function_exists('avatar_img')) {
|
||||
function avatar_img($email) {
|
||||
|
||||
$a = get_app();
|
||||
@@ -918,10 +931,10 @@ function avatar_img($email) {
|
||||
|
||||
logger('Avatar: ' . $avatar['email'] . ' ' . $avatar['url'], LOGGER_DEBUG);
|
||||
return $avatar['url'];
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(! function_exists('parse_xml_string')) {
|
||||
function parse_xml_string($s,$strict = true) {
|
||||
if($strict) {
|
||||
if(! strstr($s,'<?xml'))
|
||||
@@ -940,7 +953,7 @@ function parse_xml_string($s,$strict = true) {
|
||||
libxml_clear_errors();
|
||||
}
|
||||
return $x;
|
||||
}}
|
||||
}
|
||||
|
||||
function add_fcontact($arr,$update = false) {
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ function oembed_fetch_url($embedurl){
|
||||
// try oembed autodiscovery
|
||||
$redirects = 0;
|
||||
|
||||
$result = z_fetch_url($embedurl, false, $redirects, array('timeout' => 15, 'accept_content' => "text/*"));
|
||||
$result = z_fetch_url($embedurl, false, $redirects, array('timeout' => 15, 'accept_content' => "text/*", 'novalidate' => true ));
|
||||
if($result['success'])
|
||||
$html_text = $result['body'];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user