]> git.mxchange.org Git - friendica.git/blobdiff - boot.php
Merge branch 'master' of git://github.com/friendika/friendika
[friendica.git] / boot.php
index de166943959629aaf7e17540e81cb6c7e0292017..197b6d2381c98c9dd8927379f068d138f05b67c2 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -2,7 +2,7 @@
 
 set_time_limit(0);
 
-define ( 'BUILD_ID',               1028   );
+define ( 'BUILD_ID',               1030   );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.0'  );
 
 define ( 'EOL',                    "<br />\r\n"     );
@@ -211,14 +211,14 @@ class App {
                if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=")
                        $this->query_string = substr($_SERVER['QUERY_STRING'],2);
                if(x($_GET,'q'))
-                       $this->cmd = trim($_GET['q'],'/');
+                       $this->cmd = trim($_GET['q'],'/\\');
 
                /** 
                 * Figure out if we are running at the top of a domain
                 * or in a sub-directory and adjust accordingly
                 */
 
-               $path = trim(dirname($_SERVER['SCRIPT_NAME']),'/');
+               $path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
                if(isset($path) && strlen($path) && ($path != $this->path))
                        $this->path = $path;
 
@@ -430,6 +430,8 @@ function check_config(&$a) {
        $r = q("SELECT * FROM `addon` WHERE `installed` = 1");
        if(count($r))
                $installed = $r;
+       else
+               $installed = array();
 
        $plugins = get_config('system','addon');
        $plugins_arr = array();
@@ -438,21 +440,24 @@ function check_config(&$a) {
                $plugins_arr = explode(',',str_replace(' ', '',$plugins));
 
        $installed_arr = array();
-       foreach($installed as $i) {
-               if(! in_array($i['name'],$plugins_arr)) {
-                       logger("Addons: uninstalling " . $i['name']);
-                       q("DELETE FROM `addon` WHERE `id` = %d LIMIT 1",
-                               intval($i['id'])
-                       );
 
-                       @include_once('addon/' . $i['name'] . '/' . $i['name'] . '.php');
-                       if(function_exists($i['name'] . '_uninstall')) {
-                               $func = $i['name'] . '_uninstall';
-                               $func();
+       if(count($installed)) {
+               foreach($installed as $i) {
+                       if(! in_array($i['name'],$plugins_arr)) {
+                               logger("Addons: uninstalling " . $i['name']);
+                               q("DELETE FROM `addon` WHERE `id` = %d LIMIT 1",
+                                       intval($i['id'])
+                               );
+
+                               @include_once('addon/' . $i['name'] . '/' . $i['name'] . '.php');
+                               if(function_exists($i['name'] . '_uninstall')) {
+                                       $func = $i['name'] . '_uninstall';
+                                       $func();
+                               }
                        }
+                       else
+                               $installed_arr[] = $i['name'];
                }
-               else
-                       $installed_arr[] = $i['name'];
        }
 
        if(count($plugins_arr)) {
@@ -1113,6 +1118,23 @@ function set_config($family,$key,$value) {
 }}
 
 
+if(! function_exists('load_pconfig')) {
+function load_pconfig($uid,$family) {
+       global $a;
+       $r = q("SELECT * FROM `pconfig` WHERE `cat` = '%s' AND `uid` = %d",
+               dbesc($family),
+               intval($uid)
+       );
+       if(count($r)) {
+               foreach($r as $rr) {
+                       $k = $rr['k'];
+                       $a->config[$uid][$family][$k] = $rr['v'];
+               }
+       }
+}}
+
+
+
 if(! function_exists('get_pconfig')) {
 function get_pconfig($uid,$family, $key, $instore = false) {
 
@@ -1177,11 +1199,12 @@ function set_pconfig($uid,$family,$key,$value) {
                return $ret;
        }
        $ret = q("UPDATE `pconfig` SET `v` = '%s' WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
-               intval($uid),
                dbesc($value),
+               intval($uid),
                dbesc($family),
                dbesc($key)
        );
+
        if($ret)
                return $value;
        return $ret;
@@ -1719,6 +1742,11 @@ if(! function_exists('contact_block')) {
 function contact_block() {
        $o = '';
        $a = get_app();
+
+       $shown = get_pconfig($a->profile['uid'],'system','display_friend_count');
+       if(! $shown)
+               $shown = 24;
+
        if((! is_array($a->profile)) || ($a->profile['hide-friends']))
                return $o;
        $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0",
@@ -1731,8 +1759,9 @@ function contact_block() {
                $o .= '<h4 class="contact-h4">' . t('No contacts') . '</h4>';
                return $o;
        }
-       $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 ORDER BY RAND() LIMIT 24",
-                       intval($a->profile['uid'])
+       $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 ORDER BY RAND() LIMIT %d",
+                       intval($a->profile['uid']),
+                       intval($shown)
        );
        if(count($r)) {
                $o .= '<h4 class="contact-h4">' . $total . ' ' . t('Contacts') . '</h4><div id="contact-block">';
@@ -1754,6 +1783,10 @@ function contact_block() {
                $o .=  '<div id="viewcontacts"><a id="viewcontacts-link" href="viewcontacts/' . $a->profile['nickname'] . '">' . t('View Contacts') . '</a></div>';
                
        }
+
+       $arr = array('contacts' => $r, 'output' => $o);
+
+       call_hooks('contact_block_end', $arr);
        return $o;
 
 }}
@@ -2013,6 +2046,8 @@ function profile_sidebar($profile) {
                '$homepage' => $homepage
        ));
 
+       call_hooks('profile_sidebar', $o);
+
        return $o;
 }}
 
@@ -2020,6 +2055,14 @@ function profile_sidebar($profile) {
 if(! function_exists('register_hook')) {
 function register_hook($hook,$file,$function) {
 
+       $r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
+               dbesc($hook),
+               dbesc($file),
+               dbesc($function)
+       );
+       if(count($r))
+               return true;
+
        $r = q("INSERT INTO `hook` (`hook`, `file`, `function`) VALUES ( '%s', '%s', '%s' ) ",
                dbesc($hook),
                dbesc($file),
@@ -2053,7 +2096,7 @@ function load_hooks() {
 
 
 if(! function_exists('call_hooks')) {
-function call_hooks($name, $data = null) {
+function call_hooks($name, &$data = null) {
        $a = get_app();
 
        if(count($a->hooks)) {