]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #4168 from annando/comment-dfrn
authorHypolite Petovan <mrpetovan@gmail.com>
Thu, 4 Jan 2018 20:12:07 +0000 (15:12 -0500)
committerGitHub <noreply@github.com>
Thu, 4 Jan 2018 20:12:07 +0000 (15:12 -0500)
Commenting to (nearly) every Friendica contact is now possible

47 files changed:
boot.php
doc/htconfig.md
include/acl_selectors.php
include/api.php
include/bbcode.php
include/contact_widgets.php
include/conversation.php
include/datetime.php
include/enotify.php
include/event.php
include/files.php
include/follow.php
include/html2plain.php
include/identity.php
include/items.php
include/like.php
include/message.php
include/network.php
include/plaintext.php
include/plugin.php
include/post_update.php
include/profile_selectors.php
include/queue_fn.php
include/redir.php
include/security.php
include/session.php
include/tags.php
include/text.php
mod/admin.php
mod/bookmarklet.php
mod/display.php
mod/events.php
mod/item.php
mod/network.php
mod/parse_url.php
mod/photos.php
mod/profile.php
mod/profiles.php
mod/settings.php
mod/subthread.php
src/Content/OEmbed.php
src/Object/Thread.php
src/ParseUrl.php [deleted file]
src/Util/ParseUrl.php [new file with mode: 0644]
vendor/composer/autoload_classmap.php
vendor/composer/autoload_static.php
view/templates/admin/site.tpl

index 2c4bce9c85bd53b4bf35782ea423ebd8b51d9b33..5607260d9749114051b748a490fa96b0d17d2c0e 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -676,7 +676,7 @@ function check_db($via_worker)
        if ($build != DB_UPDATE_VERSION) {
                // When we cannot execute the database update via the worker, we will do it directly
                if (!Worker::add(PRIORITY_CRITICAL, 'DBUpdate') && $via_worker) {
-                       update_db(get_app());
+                       update_db();
                }
        }
 }
@@ -697,11 +697,8 @@ function check_url(App $a)
        // and www.example.com vs example.com.
        // We will only change the url to an ip address if there is no existing setting
 
-       if (empty($url)) {
-               $url = Config::set('system', 'url', System::baseUrl());
-       }
-       if ((!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname))) {
-               $url = Config::set('system', 'url', System::baseUrl());
+       if (empty($url) || (!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname))) {
+               Config::set('system', 'url', System::baseUrl());
        }
 
        return;
@@ -711,7 +708,7 @@ function check_url(App $a)
  * @brief Automatic database updates
  * @param object $a App
  */
-function update_db(App $a)
+function update_db()
 {
        $build = Config::get('system', 'build');
 
@@ -800,7 +797,6 @@ function run_update_function($x)
                Config::set('system', 'build', $x + 1);
                return true;
        }
-       return true;
 }
 
 /**
@@ -1051,7 +1047,6 @@ function current_theme()
 
        if ($is_mobile) {
                if (isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
-                       $system_theme = $standard_system_theme;
                        $theme_name = $standard_theme_name;
                } else {
                        $system_theme = Config::get('system', 'mobile-theme', '');
@@ -1062,7 +1057,6 @@ function current_theme()
 
                        if ($theme_name === '---') {
                                // user has selected to have the mobile theme be the same as the normal one
-                               $system_theme = $standard_system_theme;
                                $theme_name = $standard_theme_name;
 
                                if ($page_theme) {
@@ -1071,7 +1065,6 @@ function current_theme()
                        }
                }
        } else {
-               $system_theme = $standard_system_theme;
                $theme_name = $standard_theme_name;
 
                if ($page_theme) {
index 34045e5c12cf90332776b19ff21aa2f9d2d5377c..f601bdca9ed40ae6997541672b21fb9804d6d199 100644 (file)
@@ -25,7 +25,6 @@ Example: To set the directory value please add this line to your .htconfig.php:
 
 * **allowed_link_protocols** (Array) - Allowed protocols in links URLs, add at your own risk. http is always allowed.
 * **always_show_preview** (Boolean) - Only show small preview picures. Default value is false.
-* **birthday_input_format** - Default value is "ymd".
 * **block_local_dir** (Boolean) - Blocks the access to the directory of the local users.
 * **auth_cookie_lifetime** (Integer) - Number of days that should pass without any activity before a user who chose "Remember me" when logging in is considered logged out. Defaults to 7.
 * **curl_range_bytes** - Maximum number of bytes that should be fetched. Default is 0, which mean "no limit".
@@ -43,7 +42,6 @@ Example: To set the directory value please add this line to your .htconfig.php:
 * **disable_email_validation** (Boolean) - Disables the check if a mail address is in a valid format and can be resolved via DNS.
 * **disable_url_validation** (Boolean) - Disables the DNS lookup of an URL.
 * **dlogfile - location of the developer log file
-* **event_input_format** - Default value is "ymd".
 * **frontend_worker_timeout** - Value in minutes after we think that a frontend task was killed by the webserver. Default value is 10.
 * **hsts** (Boolean) - Enables the sending of HTTP Strict Transport Security headers
 * **ignore_cache** (Boolean) - For development only. Disables the item cache.
@@ -65,7 +63,6 @@ Example: To set the directory value please add this line to your .htconfig.php:
 * **memcache_port** - Portnumber of the memcache daemon. Default is 11211.
 * **no_count** (Boolean) - Don't do count calculations (currently only when showing albums)
 * **no_oembed** (Boolean) - Don't use OEmbed to fetch more information about a link.
-* **no_oembed_rich_content** (Boolean) - Don't show the rich content (e.g. embedded PDF).
 * **no_smilies** (Boolean) - Don't show smilies.
 * **no_view_full_size** (Boolean) - Don't add the link "View full size" under a resized image.
 * **optimize_items** (Boolean) - Triggers an SQL command to optimize the item table before expiring items.
index 7a488ca40bb6511b211ea57c2d45703373787e9a..02ab95bb1efaff48d3d080afe604aaf9553cdffd 100644 (file)
@@ -386,59 +386,20 @@ function populate_acl($user = null, $show_jotnets = false) {
 
 }
 
-function construct_acl_data(App $a, $user) {
-       // This function is now deactivated. It seems as if the generated data isn't used anywhere.
-       /// @todo Remove this function and all function calls before releasing Friendica 3.5.3
-       return;
-
-       // Get group and contact information for html ACL selector
-       $acl_data = acl_lookup($a, 'html');
-
-       $user_defaults = get_acl_permissions($user);
-
-       if ($acl_data['groups']) {
-               foreach ($acl_data['groups'] as $key => $group) {
-                       // Add a "selected" flag to groups that are posted to by default
-                       if ($user_defaults['allow_gid'] &&
-                                       in_array($group['id'], $user_defaults['allow_gid']) && !in_array($group['id'], $user_defaults['deny_gid']) ) {
-                               $acl_data['groups'][$key]['selected'] = 1;
-                       } else {
-                               $acl_data['groups'][$key]['selected'] = 0;
-                       }
-               }
-       }
-       if ($acl_data['contacts']) {
-               foreach ($acl_data['contacts'] as $key => $contact) {
-                       // Add a "selected" flag to groups that are posted to by default
-                       if ($user_defaults['allow_cid'] &&
-                                       in_array($contact['id'], $user_defaults['allow_cid']) && !in_array($contact['id'], $user_defaults['deny_cid']) ) {
-                               $acl_data['contacts'][$key]['selected'] = 1;
-                       } else {
-                               $acl_data['contacts'][$key]['selected'] = 0;
-                       }
-               }
-       }
-
-       return $acl_data;
-
-}
-
-function acl_lookup(App $a, $out_type = 'json') {
-
+function acl_lookup(App $a, $out_type = 'json')
+{
        if (!local_user()) {
                return '';
        }
 
-       $start  =       (x($_REQUEST,'start')           ? $_REQUEST['start']            : 0);
-       $count  =       (x($_REQUEST,'count')           ? $_REQUEST['count']            : 100);
-       $search  =      (x($_REQUEST,'search')          ? $_REQUEST['search']           : "");
-       $type   =       (x($_REQUEST,'type')            ? $_REQUEST['type']             : "");
-       $mode   =       (x($_REQUEST,'smode')           ? $_REQUEST['smode']            : "");
-       $conv_id =      (x($_REQUEST,'conversation')    ? $_REQUEST['conversation']     : null);
+       $start   = defaults($_REQUEST, 'start'       , 0);
+       $count   = defaults($_REQUEST, 'count'       , 100);
+       $search  = defaults($_REQUEST, 'search'      , '');
+       $type    = defaults($_REQUEST, 'type'        , '');
+       $conv_id = defaults($_REQUEST, 'conversation', null);
 
        // For use with jquery.textcomplete for private mail completion
-
-       if (x($_REQUEST, 'query') && strlen($_REQUEST['query'])) {
+       if (x($_REQUEST, 'query')) {
                if (! $type) {
                        $type = 'm';
                }
@@ -447,7 +408,7 @@ function acl_lookup(App $a, $out_type = 'json') {
 
        logger("Searching for ".$search." - type ".$type, LOGGER_DEBUG);
 
-       if ($search != "") {
+       if ($search != '') {
                $sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'";
                $sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')";
        } else {
@@ -490,7 +451,6 @@ function acl_lookup(App $a, $out_type = 'json') {
                $contact_count = (int)$r[0]['c'];
        } elseif ($type == 'm') {
                // autocomplete for Private Messages
-
                $r = q("SELECT COUNT(*) AS c FROM `contact`
                                WHERE `uid` = %d AND NOT `self`
                                AND NOT `blocked` AND NOT `pending` AND NOT `archive`
@@ -503,28 +463,23 @@ function acl_lookup(App $a, $out_type = 'json') {
                $contact_count = (int)$r[0]['c'];
 
        } elseif ($type == 'a') {
-
                // autocomplete for Contacts
-
                $r = q("SELECT COUNT(*) AS c FROM `contact`
                                WHERE `uid` = %d AND NOT `self`
                                AND NOT `pending` $sql_extra2" ,
                        intval(local_user())
                );
                $contact_count = (int)$r[0]['c'];
-
        } else {
                $contact_count = 0;
        }
 
-
-       $tot = $group_count+$contact_count;
+       $tot = $group_count + $contact_count;
 
        $groups = array();
        $contacts = array();
 
        if ($type == '' || $type == 'g') {
-
                /// @todo We should cache this query.
                // This can be done when we can delete cache entries via wildcard
                $r = q("SELECT `group`.`id`, `group`.`name`, GROUP_CONCAT(DISTINCT `group_member`.`contact-id` SEPARATOR ',') AS uids
@@ -541,7 +496,6 @@ function acl_lookup(App $a, $out_type = 'json') {
                );
 
                foreach ($r as $g) {
-//             logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']);
                        $groups[] = array(
                                "type"  => "g",
                                "photo" => "images/twopeople.png",
@@ -558,7 +512,6 @@ function acl_lookup(App $a, $out_type = 'json') {
        }
 
        if ($type == '') {
-
                $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv`, (`prv` OR `forum`) AS `frm` FROM `contact`
                        WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
                        AND `success_update` >= `failure_update` AND NOT (`network` IN ('%s', '%s'))
@@ -630,7 +583,6 @@ function acl_lookup(App $a, $out_type = 'json') {
                $r = array();
        }
 
-
        if (DBM::is_result($r)) {
                $forums = array();
                foreach ($r as $g) {
@@ -781,11 +733,10 @@ function navbar_complete(App $a) {
        if (! $localsearch) {
                $p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : '');
 
-               $x = z_fetch_url(get_server().'/lsearch?f=' . $p .  '&search=' . urlencode($search));
+               $x = z_fetch_url(get_server() . '/lsearch?f=' . $p .  '&search=' . urlencode($search));
                if ($x['success']) {
-                       $t = 0;
                        $j = json_decode($x['body'],true);
-                       if ($j && $j['results']) {
+                       if ($j && isset($j['results'])) {
                                return $j['results'];
                        }
                }
index e8e2295b82155e9303ad701f0fe32c7a14bce6fc..e527cb003bb756b5bb94f4d0f8efae1bc020de50 100644 (file)
@@ -304,7 +304,7 @@ function api_call(App $a)
                                logger('API parameters: ' . print_r($_REQUEST, true));
 
                                $stamp =  microtime(true);
-                               $r = call_user_func($info['func'], $type);
+                               $return = call_user_func($info['func'], $type);
                                $duration = (float) (microtime(true) - $stamp);
                                logger("API call duration: " . round($duration, 2) . "\t" . $a->query_string, LOGGER_DEBUG);
 
@@ -352,7 +352,7 @@ function api_call(App $a)
                                        }
                                }
 
-                               if (false === $r) {
+                               if (false === $return) {
                                        /*
                                                * api function returned false withour throw an
                                                * exception. This should not happend, throw a 500
@@ -363,27 +363,27 @@ function api_call(App $a)
                                switch ($type) {
                                        case "xml":
                                                header("Content-Type: text/xml");
-                                               return $r;
                                                break;
                                        case "json":
                                                header("Content-Type: application/json");
-                                               foreach ($r as $rr) {
+                                               foreach ($return as $rr) {
                                                        $json = json_encode($rr);
                                                }
                                                if (x($_GET, 'callback')) {
                                                        $json = $_GET['callback'] . "(" . $json . ")";
                                                }
-                                               return $json;
+                                               $return = $json;
                                                break;
                                        case "rss":
                                                header("Content-Type: application/rss+xml");
-                                               return '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . $r;
+                                               $return  = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . $return;
                                                break;
                                        case "atom":
                                                header("Content-Type: application/atom+xml");
-                                               return '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . $r;
+                                               $return = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . $return;
                                                break;
                                }
+                               return $return;
                        }
                }
 
@@ -413,26 +413,25 @@ function api_error($type, $e)
                        "code" => $e->httpcode . " " . $e->httpdesc,
                        "request" => $a->query_string);
 
-       $ret = api_format_data('status', $type, array('status' => $error));
+       $return = api_format_data('status', $type, array('status' => $error));
 
        switch ($type) {
                case "xml":
                        header("Content-Type: text/xml");
-                       return $ret;
                        break;
                case "json":
                        header("Content-Type: application/json");
-                       return json_encode($ret);
+                       $return = json_encode($return);
                        break;
                case "rss":
                        header("Content-Type: application/rss+xml");
-                       return $ret;
                        break;
                case "atom":
                        header("Content-Type: application/atom+xml");
-                       return $ret;
                        break;
        }
+
+       return $return;
 }
 
 /**
@@ -496,7 +495,6 @@ function api_get_user(App $a, $contact_id = null)
        $user = null;
        $extra_query = "";
        $url = "";
-       $nick = "";
 
        logger("api_get_user: Fetching user data for user ".$contact_id, LOGGER_DEBUG);
 
@@ -540,7 +538,6 @@ function api_get_user(App $a, $contact_id = null)
        }
        if (is_null($user) && x($_GET, 'screen_name')) {
                $user = dbesc($_GET['screen_name']);
-               $nick = $user;
                $extra_query = "AND `contact`.`nick` = '%s' ";
                if (api_user() !== false) {
                        $extra_query .= "AND `contact`.`uid`=".intval(api_user());
@@ -549,7 +546,6 @@ function api_get_user(App $a, $contact_id = null)
 
        if (is_null($user) && x($_GET, 'profileurl')) {
                $user = dbesc(normalise_link($_GET['profileurl']));
-               $nick = $user;
                $extra_query = "AND `contact`.`nurl` = '%s' ";
                if (api_user() !== false) {
                        $extra_query .= "AND `contact`.`uid`=".intval(api_user());
@@ -573,7 +569,6 @@ function api_get_user(App $a, $contact_id = null)
                        }
                } else {
                        $user = dbesc($user);
-                       $nick = $user;
                        $extra_query = "AND `contact`.`nick` = '%s' ";
                        if (api_user() !== false) {
                                $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
@@ -1116,12 +1111,9 @@ function api_statuses_update($type)
                throw new ForbiddenException();
        }
 
-       $user_info = api_get_user($a);
+       api_get_user($a);
 
        // convert $_POST array items to the form we use for web posts.
-
-       // logger('api_post: ' . print_r($_POST,true));
-
        if (requestdata('htmlstatus')) {
                $txt = requestdata('htmlstatus');
                if ((strpos($txt, '<') !== false) || (strpos($txt, '>') !== false)) {
@@ -1284,12 +1276,10 @@ api_register_func('api/statuses/update_with_media', 'api_statuses_update', true,
 /**
  * Uploads an image to Friendica.
  *
- * @param string $type Return type (atom, rss, xml, json)
- *
  * @return array
  * @see https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-upload
  */
-function api_media_upload($type)
+function api_media_upload()
 {
        $a = get_app();
 
@@ -1298,7 +1288,7 @@ function api_media_upload($type)
                throw new ForbiddenException();
        }
 
-       $user_info = api_get_user($a);
+       api_get_user($a);
 
        if (!x($_FILES, 'media')) {
                // Output error
@@ -1537,8 +1527,6 @@ function api_users_search($type)
 {
        $a = get_app();
 
-       $page = (x($_REQUEST, 'page') ? $_REQUEST['page'] - 1 : 0);
-
        $userlist = array();
 
        if (x($_GET, 'q')) {
@@ -1566,6 +1554,7 @@ function api_users_search($type)
        } else {
                throw new BadRequestException("User not found.");
        }
+
        return api_format_data("users", $type, $userlist);
 }
 
@@ -1748,7 +1737,7 @@ function api_statuses_home_timeline($type)
                $unseen = q("SELECT `id` FROM `item` WHERE `unseen` AND `id` IN (%s)", $idlist);
 
                if ($unseen) {
-                       $r = q("UPDATE `item` SET `unseen` = 0 WHERE `unseen` AND `id` IN (%s)", $idlist);
+                       q("UPDATE `item` SET `unseen` = 0 WHERE `unseen` AND `id` IN (%s)", $idlist);
                }
        }
 
@@ -2127,7 +2116,7 @@ function api_statuses_repeat($type)
                throw new ForbiddenException();
        }
 
-       $user_info = api_get_user($a);
+       api_get_user($a);
 
        // params
        $id = intval($a->argv[3]);
@@ -2207,7 +2196,7 @@ function api_statuses_destroy($type)
                throw new ForbiddenException();
        }
 
-       $user_info = api_get_user($a);
+       api_get_user($a);
 
        // params
        $id = intval($a->argv[3]);
@@ -2259,23 +2248,20 @@ function api_statuses_mentions($type)
 
 
        // params
-       $count = (x($_REQUEST, 'count') ? $_REQUEST['count'] : 20);
-       $page = (x($_REQUEST, 'page') ? $_REQUEST['page'] -1 : 0);
-       if ($page < 0) {
-               $page = 0;
+       $since_id = defaults($_REQUEST, 'since_id', 0);
+       $max_id   = defaults($_REQUEST, 'max_id'  , 0);
+       $count    = defaults($_REQUEST, 'count'   , 20);
+       $page     = defaults($_REQUEST, 'page'    , 1);
+       if ($page < 1) {
+               $page = 1;
        }
-       $since_id = (x($_REQUEST, 'since_id') ? $_REQUEST['since_id'] : 0);
-       $max_id = (x($_REQUEST, 'max_id') ? $_REQUEST['max_id'] : 0);
-       //$since_id = 0;//$since_id = (x($_REQUEST, 'since_id')?$_REQUEST['since_id'] : 0);
 
-       $start = $page * $count;
+       $start = ($page - 1) * $count;
 
        // Ugly code - should be changed
        $myurl = System::baseUrl() . '/profile/'. $a->user['nickname'];
        $myurl = substr($myurl, strpos($myurl, '://') + 3);
-       //$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
        $myurl = str_replace('www.', '', $myurl);
-       $diasp_url = str_replace('/profile/', '/u/', $myurl);
 
        if ($max_id > 0) {
                $sql_extra = ' AND `item`.`id` <= ' . intval($max_id);
@@ -2751,8 +2737,6 @@ function api_get_attachments(&$body)
  */
 function api_get_entitities(&$text, $bbcode)
 {
-       $a = get_app();
-
        $include_entities = strtolower(x($_REQUEST, 'include_entities') ? $_REQUEST['include_entities'] : "false");
 
        if ($include_entities != "true") {
@@ -2917,19 +2901,18 @@ function api_get_entitities(&$text, $bbcode)
  *
  * @return string
  */
-function api_format_items_embeded_images(&$item, $text)
+function api_format_items_embeded_images($item, $text)
 {
        $text = preg_replace_callback(
-               "|data:image/([^;]+)[^=]+=*|m",
-               function ($match) use ($item) {
-                       return System::baseUrl()."/display/".$item['guid'];
+               '|data:image/([^;]+)[^=]+=*|m',
+               function () use ($item) {
+                       return System::baseUrl() . '/display/' . $item['guid'];
                },
                $text
        );
        return $text;
 }
 
-
 /**
  * @brief return <a href='url'>name</a> as array
  *
@@ -3034,54 +3017,53 @@ function api_format_items_activities(&$item, $type = "json")
 /**
  * @brief return data from profiles
  *
- * @param array  $profile array containing data from db table 'profile'
- * @param string $type    Known types are 'atom', 'rss', 'xml' and 'json'
+ * @param array  $profile_row array containing data from db table 'profile'
  * @return array
  */
-function api_format_items_profiles(&$profile = null, $type = "json")
+function api_format_items_profiles($profile_row)
 {
-       if ($profile != null) {
-               $profile = array('profile_id' => $profile['id'],
-                                               'profile_name' => $profile['profile-name'],
-                                               'is_default' => $profile['is-default'] ? true : false,
-                                               'hide_friends'=> $profile['hide-friends'] ? true : false,
-                                               'profile_photo' => $profile['photo'],
-                                               'profile_thumb' => $profile['thumb'],
-                                               'publish' => $profile['publish'] ? true : false,
-                                               'net_publish' => $profile['net-publish'] ? true : false,
-                                               'description' => $profile['pdesc'],
-                                               'date_of_birth' => $profile['dob'],
-                                               'address' => $profile['address'],
-                                               'city' => $profile['locality'],
-                                               'region' => $profile['region'],
-                                               'postal_code' => $profile['postal-code'],
-                                               'country' => $profile['country-name'],
-                                               'hometown' => $profile['hometown'],
-                                               'gender' => $profile['gender'],
-                                               'marital' => $profile['marital'],
-                                               'marital_with' => $profile['with'],
-                                               'marital_since' => $profile['howlong'],
-                                               'sexual' => $profile['sexual'],
-                                               'politic' => $profile['politic'],
-                                               'religion' => $profile['religion'],
-                                               'public_keywords' => $profile['pub_keywords'],
-                                               'private_keywords' => $profile['prv_keywords'],
-                                               'likes' => bbcode(api_clean_plain_items($profile['likes']), false, false, 2, false),
-                                               'dislikes' => bbcode(api_clean_plain_items($profile['dislikes']), false, false, 2, false),
-                                               'about' => bbcode(api_clean_plain_items($profile['about']), false, false, 2, false),
-                                               'music' => bbcode(api_clean_plain_items($profile['music']), false, false, 2, false),
-                                               'book' => bbcode(api_clean_plain_items($profile['book']), false, false, 2, false),
-                                               'tv' => bbcode(api_clean_plain_items($profile['tv']), false, false, 2, false),
-                                               'film' => bbcode(api_clean_plain_items($profile['film']), false, false, 2, false),
-                                               'interest' => bbcode(api_clean_plain_items($profile['interest']), false, false, 2, false),
-                                               'romance' => bbcode(api_clean_plain_items($profile['romance']), false, false, 2, false),
-                                               'work' => bbcode(api_clean_plain_items($profile['work']), false, false, 2, false),
-                                               'education' => bbcode(api_clean_plain_items($profile['education']), false, false, 2, false),
-                                               'social_networks' => bbcode(api_clean_plain_items($profile['contact']), false, false, 2, false),
-                                               'homepage' => $profile['homepage'],
-                                               'users' => null);
-               return $profile;
-       }
+       $profile = array(
+               'profile_id'       => $profile_row['id'],
+               'profile_name'     => $profile_row['profile-name'],
+               'is_default'       => $profile_row['is-default'] ? true : false,
+               'hide_friends'     => $profile_row['hide-friends'] ? true : false,
+               'profile_photo'    => $profile_row['photo'],
+               'profile_thumb'    => $profile_row['thumb'],
+               'publish'          => $profile_row['publish'] ? true : false,
+               'net_publish'      => $profile_row['net-publish'] ? true : false,
+               'description'      => $profile_row['pdesc'],
+               'date_of_birth'    => $profile_row['dob'],
+               'address'          => $profile_row['address'],
+               'city'             => $profile_row['locality'],
+               'region'           => $profile_row['region'],
+               'postal_code'      => $profile_row['postal-code'],
+               'country'          => $profile_row['country-name'],
+               'hometown'         => $profile_row['hometown'],
+               'gender'           => $profile_row['gender'],
+               'marital'          => $profile_row['marital'],
+               'marital_with'     => $profile_row['with'],
+               'marital_since'    => $profile_row['howlong'],
+               'sexual'           => $profile_row['sexual'],
+               'politic'          => $profile_row['politic'],
+               'religion'         => $profile_row['religion'],
+               'public_keywords'  => $profile_row['pub_keywords'],
+               'private_keywords' => $profile_row['prv_keywords'],
+               'likes'            => bbcode(api_clean_plain_items($profile_row['likes'])    , false, false, 2, false),
+               'dislikes'         => bbcode(api_clean_plain_items($profile_row['dislikes']) , false, false, 2, false),
+               'about'            => bbcode(api_clean_plain_items($profile_row['about'])    , false, false, 2, false),
+               'music'            => bbcode(api_clean_plain_items($profile_row['music'])    , false, false, 2, false),
+               'book'             => bbcode(api_clean_plain_items($profile_row['book'])     , false, false, 2, false),
+               'tv'               => bbcode(api_clean_plain_items($profile_row['tv'])       , false, false, 2, false),
+               'film'             => bbcode(api_clean_plain_items($profile_row['film'])     , false, false, 2, false),
+               'interest'         => bbcode(api_clean_plain_items($profile_row['interest']) , false, false, 2, false),
+               'romance'          => bbcode(api_clean_plain_items($profile_row['romance'])  , false, false, 2, false),
+               'work'             => bbcode(api_clean_plain_items($profile_row['work'])     , false, false, 2, false),
+               'education'        => bbcode(api_clean_plain_items($profile_row['education']), false, false, 2, false),
+               'social_networks'  => bbcode(api_clean_plain_items($profile_row['contact'])  , false, false, 2, false),
+               'homepage'         => $profile_row['homepage'],
+               'users'            => null
+       );
+       return $profile;
 }
 
 /**
@@ -3541,21 +3523,18 @@ api_register_func('api/statusnet/version', 'api_statusnet_version', false);
 /**
  *
  * @param string $type Return type (atom, rss, xml, json)
- * @param string $qtype
  *
  * @todo use api_format_data() to return data
  */
-function api_ff_ids($type, $qtype)
+function api_ff_ids($type)
 {
-       $a = get_app();
-
        if (! api_user()) {
                throw new ForbiddenException();
        }
 
-       $user_info = api_get_user($a);
+       api_get_user($a);
 
-       $stringify_ids = (x($_REQUEST, 'stringify_ids') ? $_REQUEST['stringify_ids'] : false);
+       $stringify_ids = defaults($_REQUEST, 'stringify_ids', false);
 
        $r = q(
                "SELECT `pcontact`.`id` FROM `contact`
@@ -3563,7 +3542,6 @@ function api_ff_ids($type, $qtype)
                        WHERE `contact`.`uid` = %s AND NOT `contact`.`self`",
                intval(api_user())
        );
-
        if (!DBM::is_result($r)) {
                return;
        }
@@ -3590,7 +3568,7 @@ function api_ff_ids($type, $qtype)
  */
 function api_friends_ids($type)
 {
-       return api_ff_ids($type, 'friends');
+       return api_ff_ids($type);
 }
 
 /**
@@ -3603,7 +3581,7 @@ function api_friends_ids($type)
  */
 function api_followers_ids($type)
 {
-       return api_ff_ids($type, 'followers');
+       return api_ff_ids($type);
 }
 
 /// @TODO move to top of file or somewhere better
@@ -3930,10 +3908,9 @@ api_register_func('api/direct_messages', 'api_direct_messages_inbox', true);
 /**
  * Returns an OAuth Request Token.
  *
- * @param string $type Return type (atom, rss, xml, json)
  * @see https://oauth.net/core/1.0/#auth_step1
  */
-function api_oauth_request_token($type)
+function api_oauth_request_token()
 {
        $oauth1 = new FKOAuth1();
        try {
@@ -3949,12 +3926,10 @@ function api_oauth_request_token($type)
 /**
  * Returns an OAuth Access Token.
  *
- * @param string $type Return type (atom, rss, xml, json)
- *
  * @return array|string
  * @see https://oauth.net/core/1.0/#auth_step3
  */
-function api_oauth_access_token($type)
+function api_oauth_access_token()
 {
        $oauth1 = new FKOAuth1();
        try {
@@ -4366,7 +4341,7 @@ function api_account_update_profile_image($type)
                throw new ForbiddenException();
        }
        // input params
-       $profileid = (x($_REQUEST, 'profile_id') ? $_REQUEST['profile_id'] : 0);
+       $profileid = defaults($_REQUEST, 'profile_id', 0);
 
        // error if image data is missing
        if (!x($_FILES, 'image')) {
@@ -4412,13 +4387,13 @@ function api_account_update_profile_image($type)
        }
        // change specified profile or all profiles to the new resource-id
        if ($is_default_profile) {
-               $r = q(
+               q(
                        "UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' AND `uid` = %d",
                        dbesc($data['photo']['id']),
                        intval(local_user())
                );
 
-               $r = q(
+               q(
                        "UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s'  WHERE `self` AND `uid` = %d",
                        dbesc(System::baseUrl() . '/photo/' . $data['photo']['id'] . '-4.' . $fileext),
                        dbesc(System::baseUrl() . '/photo/' . $data['photo']['id'] . '-5.' . $fileext),
@@ -4426,7 +4401,7 @@ function api_account_update_profile_image($type)
                        intval(local_user())
                );
        } else {
-               $r = q(
+               q(
                        "UPDATE `profile` SET `photo` = '%s', `thumb` = '%s' WHERE `id` = %d AND `uid` = %d",
                        dbesc(System::baseUrl() . '/photo/' . $data['photo']['id'] . '-4.' . $filetype),
                        dbesc(System::baseUrl() . '/photo/' . $data['photo']['id'] . '-5.' . $filetype),
@@ -4438,7 +4413,7 @@ function api_account_update_profile_image($type)
        // we'll set the updated profile-photo timestamp even if it isn't the default profile,
        // so that browsers will do a cache update unconditionally
 
-       $r = q(
+       q(
                "UPDATE `contact` SET `avatar-date` = '%s' WHERE `self` = 1 AND `uid` = %d",
                dbesc(datetime_convert()),
                intval(local_user())
@@ -4903,7 +4878,7 @@ function api_friendica_remoteauth()
 
        $cid = $r['id'];
 
-       $dfrn_id = $orig_id = (($r['issued-id']) ? $r['issued-id'] : $r['dfrn-id']);
+       $dfrn_id = defaults($r, 'issued-id', $r['dfrn-id']);
 
        if ($r['duplex'] && $r['issued-id']) {
                $orig_id = $r['issued-id'];
@@ -5503,7 +5478,7 @@ function api_friendica_group_create($type)
                        intval($uid)
                );
                if (count($contact)) {
-                       $result = Group::addMember($gid, $cid);
+                       Group::addMember($gid, $cid);
                } else {
                        $erroraddinguser = true;
                        $errorusers[] = $cid;
@@ -5559,7 +5534,7 @@ function api_friendica_group_update($type)
                        $found = ($user['cid'] == $cid ? true : false);
                }
                if (!$found) {
-                       $ret = Group::removeMemberByName($uid, $name, $cid);
+                       Group::removeMemberByName($uid, $name, $cid);
                }
        }
 
@@ -5576,7 +5551,7 @@ function api_friendica_group_update($type)
                );
 
                if (count($contact)) {
-                       $result = Group::addMember($gid, $cid);
+                       Group::addMember($gid, $cid);
                } else {
                        $erroraddinguser = true;
                        $errorusers[] = $cid;
@@ -5880,7 +5855,7 @@ function api_friendica_profile_show($type)
        // loop through all returned profiles and retrieve data and users
        $k = 0;
        foreach ($r as $rr) {
-               $profile = api_format_items_profiles($rr, $type);
+               $profile = api_format_items_profiles($rr);
 
                // select all users from contact table, loop and prepare standard return for user data
                $users = array();
index 261bdfcf660cc69034a5c927088a77a08aaf0bd8..87a8eaa9b38d6518c57c779e0cf026d5567737bf 100644 (file)
@@ -67,8 +67,6 @@ function bb_attachment($Text, $simplehtml = false, $tryoembed = true) {
        } else {
                if ($simplehtml != 4) {
                        $text = sprintf('<span class="type-%s">', $data["type"]);
-               } else {
-                       $span_end = '';
                }
 
                $bookmark = array(sprintf('[bookmark=%s]%s[/bookmark]', $data["url"], $data["title"]), $data["url"], $data["title"]);
@@ -270,7 +268,6 @@ function bb_spacefy($st) {
  * returning [i]italic[/i]
  */
 function bb_unspacefy_and_trim($st) {
-       $whole_match = $st[0];
        $captured = $st[1];
        $unspacefied = preg_replace("/\[ (.*?)\ ]/", "[$1]", $captured);
        return $unspacefied;
index 9c44f4d15695027027a5f756f8cfb93a1f62d92f..55e119c3fa55617b27c64d69ce3f39d465e82c2e 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * @file include/contact_widgets.php
  */
@@ -11,8 +12,8 @@ use Friendica\Model\GContact;
 
 require_once 'include/contact_selectors.php';
 
-function follow_widget($value = "") {
-
+function follow_widget($value = "")
+{
        return replace_macros(get_markup_template('follow.tpl'), array(
                '$connect' => t('Add New Contact'),
                '$desc' => t('Enter address or web location'),
@@ -20,10 +21,10 @@ function follow_widget($value = "") {
                '$value' => $value,
                '$follow' => t('Connect')
        ));
-
 }
 
-function findpeople_widget() {
+function findpeople_widget()
+{
        $a = get_app();
        $global_dir = Config::get('system', 'directory');
 
@@ -31,8 +32,8 @@ function findpeople_widget() {
                $x = PConfig::get(local_user(), 'system', 'invites_remaining');
                if ($x || is_site_admin()) {
                        $a->page['aside'] .= '<div class="side-link" id="side-invite-remain">'
-                       . sprintf( tt('%d invitation available', '%d invitations available', $x), $x)
-                       . '</div>' . $inv;
+                               . tt('%d invitation available', '%d invitations available', $x)
+                               . '</div>' . $inv;
                }
        }
 
@@ -49,12 +50,10 @@ function findpeople_widget() {
                '$directory' => t('View Global Directory'),
                '$global_dir' => $global_dir
        ));
-
 }
 
-function unavailable_networks() {
-       $network_filter = "";
-
+function unavailable_networks()
+{
        $networks = array();
 
        if (!plugin_enabled("appnet")) {
@@ -100,10 +99,8 @@ function unavailable_networks() {
        return $network_filter;
 }
 
-function networks_widget($baseurl, $selected = '') {
-
-       $a = get_app();
-
+function networks_widget($baseurl, $selected = '')
+{
        if (!local_user()) {
                return '';
        }
@@ -138,21 +135,21 @@ function networks_widget($baseurl, $selected = '') {
                '$all' => t('All Networks'),
                '$nets' => $nets,
                '$base' => $baseurl,
-
        ));
 }
 
-function fileas_widget($baseurl, $selected = '') {
-       if (! local_user()) {
+function fileas_widget($baseurl, $selected = '')
+{
+       if (!local_user()) {
                return '';
        }
 
-       if (! Feature::isEnabled(local_user(), 'filing')) {
+       if (!Feature::isEnabled(local_user(), 'filing')) {
                return '';
        }
 
        $saved = PConfig::get(local_user(), 'system', 'filetags');
-       if (! strlen($saved)) {
+       if (!strlen($saved)) {
                return;
        }
 
@@ -173,20 +170,19 @@ function fileas_widget($baseurl, $selected = '') {
                '$all' => t('Everything'),
                '$terms' => $terms,
                '$base' => $baseurl,
-
        ));
 }
 
-function categories_widget($baseurl, $selected = '') {
-
+function categories_widget($baseurl, $selected = '')
+{
        $a = get_app();
 
-       if (! Feature::isEnabled($a->profile['profile_uid'], 'categories')) {
+       if (!Feature::isEnabled($a->profile['profile_uid'], 'categories')) {
                return '';
        }
 
        $saved = PConfig::get($a->profile['profile_uid'], 'system', 'filetags');
-       if (! strlen($saved)) {
+       if (!strlen($saved)) {
                return;
        }
 
@@ -208,14 +204,11 @@ function categories_widget($baseurl, $selected = '') {
                '$all' => t('Everything'),
                '$terms' => $terms,
                '$base' => $baseurl,
-
        ));
 }
 
-function common_friends_visitor_widget($profile_uid) {
-
-       $a = get_app();
-
+function common_friends_visitor_widget($profile_uid)
+{
        if (local_user() == $profile_uid) {
                return;
        }
@@ -231,7 +224,7 @@ function common_friends_visitor_widget($profile_uid) {
                }
        }
 
-       if (! $cid) {
+       if (!$cid) {
                if (get_my_url()) {
                        $r = dba::select('contact', array('id'),
                                        array('nurl' => normalise_link(get_my_url()), 'uid' => $profile_uid), array('limit' => 1));
@@ -239,8 +232,9 @@ function common_friends_visitor_widget($profile_uid) {
                                $cid = $r['id'];
                        } else {
                                $r = dba::select('gcontact', array('id'), array('nurl' => normalise_link(get_my_url())), array('limit' => 1));
-                               if (DBM::is_result($r))
+                               if (DBM::is_result($r)) {
                                        $zcid = $r['id'];
+                               }
                        }
                }
        }
@@ -254,7 +248,8 @@ function common_friends_visitor_widget($profile_uid) {
        } else {
                $t = GContact::countCommonFriendsZcid($profile_uid, $zcid);
        }
-       if (! $t) {
+
+       if (!$t) {
                return;
        }
 
@@ -265,7 +260,7 @@ function common_friends_visitor_widget($profile_uid) {
        }
 
        return replace_macros(get_markup_template('remote_friends_common.tpl'), array(
-               '$desc' =>  sprintf(tt("%d contact in common", "%d contacts in common", $t), $t),
+               '$desc' => tt("%d contact in common", "%d contacts in common", $t),
                '$base' => System::baseUrl(),
                '$uid' => $profile_uid,
                '$cid' => (($cid) ? $cid : '0'),
index 0a565c68e343adb27cf23387aa05774e8d40a259..0bc3bb0b2b1de14ab45f1b70596d642d84703716 100644 (file)
@@ -589,11 +589,8 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
 
        $page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false);
 
-
-       if ($update) {
-               $return_url = $_SESSION['return_url'];
-       } else {
-               $return_url = $_SESSION['return_url'] = $a->query_string;
+       if (!$update) {
+               $_SESSION['return_url'] = $a->query_string;
        }
 
        $cb = array('items' => $items, 'mode' => $mode, 'update' => $update, 'preview' => $preview);
@@ -601,9 +598,6 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
 
        $items = $cb['items'];
 
-       $cmnt_tpl    = get_markup_template('comment_item.tpl');
-       $hide_comments_tpl = get_markup_template('hide_comments.tpl');
-
        $conv_responses = array(
                'like' => array('title' => t('Likes','title')), 'dislike' => array('title' => t('Dislikes','title')),
                'attendyes' => array('title' => t('Attending','title')), 'attendno' => array('title' => t('Not attending','title')), 'attendmaybe' => array('title' => t('Might attend','title'))
@@ -759,7 +753,6 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
 
                                $lock = false;
                                $likebuttons = false;
-                               $shareable = false;
 
                                $body = prepare_body($item, true, $preview);
 
@@ -844,9 +837,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
                         * this shouldn't be needed, as we should have only them in our array
                         * But for now, this array respects the old style, just in case
                         */
-                       $threads = array();
                        foreach ($items as $item) {
-
                                if ($arr_blocked) {
                                        $blocked = false;
                                        foreach ($arr_blocked as $b) {
@@ -883,7 +874,6 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
                        }
 
                        $threads = $conv->getTemplateData($conv_responses);
-
                        if (!$threads) {
                                logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG);
                                $threads = array();
@@ -1001,7 +991,6 @@ function item_photo_menu($item) {
        $status_link = '';
        $photos_link = '';
        $posts_link = '';
-       $network = '';
 
        if ((local_user()) && local_user() == $item['uid'] && $item['parent'] == $item['id'] && (! $item['self'])) {
                $sub_link = 'javascript:dosubthread(' . $item['id'] . '); return false;';
@@ -1027,7 +1016,6 @@ function item_photo_menu($item) {
                $status_link = $profile_link . '?url=status';
                $photos_link = $profile_link . '?url=photos';
                $profile_link = $profile_link . '?url=profile';
-               $zurl = '';
        } else {
                $profile_link = zrl($profile_link);
        }
@@ -1114,7 +1102,6 @@ function builtin_activity_puller($item, &$conv_responses) {
                                break;
                        default:
                                return;
-                               break;
                }
 
                if ((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
@@ -1362,7 +1349,6 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
 
                // ACL permissions box
                '$acl'           => $x['acl'],
-               '$acl_data'      => $x['acl_data'],
                '$group_perms'   => t('Post to Groups'),
                '$contact_perms' => t('Post to Contacts'),
                '$private'       => t('Private post'),
@@ -1657,22 +1643,25 @@ function get_responses($conv_responses, $response_verbs, $ob, $item) {
        return $ret;
 }
 
-function get_response_button_text($v, $count) {
+function get_response_button_text($v, $count)
+{
        switch ($v) {
                case 'like':
-                       return tt('Like', 'Likes', $count, 'noun');
+                       $return = tt('Like', 'Likes', $count);
                        break;
                case 'dislike':
-                       return tt('Dislike', 'Dislikes', $count, 'noun');
+                       $return = tt('Dislike', 'Dislikes', $count);
                        break;
                case 'attendyes':
-                       return tt('Attending', 'Attending', $count, 'noun');
+                       $return = tt('Attending', 'Attending', $count);
                        break;
                case 'attendno':
-                       return tt('Not Attending', 'Not Attending', $count, 'noun');
+                       $return = tt('Not Attending', 'Not Attending', $count);
                        break;
                case 'attendmaybe':
-                       return tt('Undecided', 'Undecided', $count, 'noun');
+                       $return = tt('Undecided', 'Undecided', $count);
                        break;
        }
+
+       return $return;
 }
index cb27799798b0c3c5a269eae3e8df8b882bd45125..26f1debecf443b00a8c42d07c8ef797d60cb8da3 100644 (file)
@@ -177,13 +177,10 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
  * @param string $dob Date of Birth
  * @return string Formatted html
  */
-function dob($dob) {
-       list($year,$month,$day) = sscanf($dob,'%4d-%2d-%2d');
+function dob($dob)
+{
+       list($year, $month, $day) = sscanf($dob, '%4d-%2d-%2d');
 
-       $f = Config::get('system', 'birthday_input_format');
-       if (! $f) {
-               $f = 'ymd';
-       }
        if ($dob <= '0001-01-01') {
                $value = '';
        } else {
@@ -215,8 +212,6 @@ function dob($dob) {
 /**
  * @brief Returns a date selector
  *
- * @param string $format
- *  Format string, e.g. 'ymd' or 'mdy'. Not currently supported
  * @param string $min
  *  Unix timestamp of minimum date
  * @param string $max
@@ -228,15 +223,14 @@ function dob($dob) {
  *
  * @return string Parsed HTML output.
  */
-function datesel($format, $min, $max, $default, $id = 'datepicker') {
-       return datetimesel($format, $min, $max, $default, '', $id, true, false, '', '');
+function datesel($min, $max, $default, $id = 'datepicker')
+{
+       return datetimesel($min, $max, $default, '', $id, true, false, '', '');
 }
 
 /**
  * @brief Returns a time selector
  *
- * @param string $format
- *  Format string, e.g. 'ymd' or 'mdy'. Not currently supported
  * @param $h
  *  Already selected hour
  * @param $m
@@ -246,15 +240,14 @@ function datesel($format, $min, $max, $default, $id = 'datepicker') {
  *
  * @return string Parsed HTML output.
  */
-function timesel($format, $h, $m, $id = 'timepicker') {
-       return datetimesel($format, new DateTime(), new DateTime(), new DateTime("$h:$m"), '', $id, false, true);
+function timesel($h, $m, $id = 'timepicker')
+{
+       return datetimesel(new DateTime(), new DateTime(), new DateTime("$h:$m"), '', $id, false, true);
 }
 
 /**
  * @brief Returns a datetime selector.
  *
- * @param string $format
- *  format string, e.g. 'ymd' or 'mdy'. Not currently supported
  * @param string $min
  *  unix timestamp of minimum date
  * @param string $max
@@ -278,8 +271,8 @@ function timesel($format, $h, $m, $id = 'timepicker') {
  * @todo Once browser support is better this could probably be replaced with
  * native HTML5 date picker.
  */
-function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '', $required = false) {
-
+function datetimesel($min, $max, $default, $label, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '', $required = false)
+{
        // First day of the week (0 = Sunday)
        $firstDay = PConfig::get(local_user(), 'system', 'first_day_of_week', 0);
 
@@ -619,7 +612,7 @@ function update_contact_birthdays() {
                        $bdtext = sprintf( t('%s\'s birthday'), $rr['name']);
                        $bdtext2 = sprintf( t('Happy Birthday %s'), ' [url=' . $rr['url'] . ']' . $rr['name'] . '[/url]') ;
 
-                       $r = q("INSERT INTO `event` (`uid`,`cid`,`created`,`edited`,`start`,`finish`,`summary`,`desc`,`type`,`adjust`)
+                       q("INSERT INTO `event` (`uid`,`cid`,`created`,`edited`,`start`,`finish`,`summary`,`desc`,`type`,`adjust`)
                                VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d' ) ",
                                intval($rr['uid']),
                                intval($rr['id']),
index 99d5ea0ab3939504f7458cac9a919efe46e613a3..58f40fe2dd7ad934b82ebf3c9d81bc48018ccf19 100644 (file)
@@ -20,12 +20,11 @@ require_once 'include/html2bbcode.php';
                        source_link, activity, preamble, notify_flags,
                        language, show_in_notification_page
  */
-function notification($params) {
-
+function notification($params)
+{
        $a = get_app();
 
        // from here on everything is in the recipients language
-
        push_lang($params['language']);
 
        $banner = t('Friendica Notification');
@@ -33,21 +32,22 @@ function notification($params) {
        $siteurl = System::baseUrl(true);
        $thanks = t('Thank You,');
        $sitename = $a->config['sitename'];
-       if (!x($a->config['admin_name']))
+       if (!x($a->config['admin_name'])) {
            $site_admin = sprintf(t('%s Administrator'), $sitename);
-       else
+       } else {
            $site_admin = sprintf(t('%1$s, %2$s Administrator'), $a->config['admin_name'], $sitename);
-
-       $nickname = "";
+       }
 
        $sender_name = $sitename;
        $hostname = $a->get_hostname();
-       if (strpos($hostname, ':'))
+       if (strpos($hostname, ':')) {
                $hostname = substr($hostname, 0, strpos($hostname, ':'));
+       }
 
        $sender_email = $a->config['sender_email'];
-       if (empty($sender_email))
+       if (empty($sender_email)) {
                $sender_email = t('noreply').'@'.$hostname;
+       }
 
        if ($params['type'] != SYSTEM_EMAIL) {
                $user = dba::select('user', array('nickname', 'page-flags'),
@@ -77,21 +77,21 @@ function notification($params) {
        if (array_key_exists('item', $params)) {
                $title = $params['item']['title'];
                $body = $params['item']['body'];
-       } else
+       } else {
                $title = $body = '';
+       }
 
-       // e.g. "your post", "David's photo", etc.
-       $possess_desc = t('%s <!item_type!>');
-
-       if (isset($params['item']['id']))
+       if (isset($params['item']['id'])) {
                $item_id = $params['item']['id'];
-       else
+       } else {
                $item_id = 0;
+       }
 
-       if (isset($params['parent']))
+       if (isset($params['parent'])) {
                $parent_id = $params['parent'];
-       else
+       } else {
                $parent_id = 0;
+       }
 
        if ($params['type'] == NOTIFY_MAIL) {
                $subject = sprintf(t('[Friendica:Notify] New mail received at %s'), $sitename);
@@ -117,8 +117,6 @@ function notification($params) {
 
                // Check to see if there was already a tag notify or comment notify for this post.
                // If so don't create a second notification
-
-               $p = null;
                $p = q("SELECT `id` FROM `notify` WHERE `type` IN (%d, %d, %d) AND `link` = '%s' AND `uid` = %d LIMIT 1",
                        intval(NOTIFY_TAGSELF),
                        intval(NOTIFY_COMMENT),
@@ -151,19 +149,21 @@ function notification($params) {
                                                                $item_post_type);
 
                // "George Bull's post"
-               if ($p)
+               if ($p) {
                        $dest_str = sprintf(t('%1$s commented on [url=%2$s]%3$s\'s %4$s[/url]'),
                                                '[url='.$params['source_link'].']'.$params['source_name'].'[/url]',
                                                $itemlink,
                                                $p[0]['author-name'],
                                                $item_post_type);
+               }
 
                // "your post"
-               if ($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall'])
+               if ($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall']) {
                        $dest_str = sprintf(t('%1$s commented on [url=%2$s]your %3$s[/url]'),
                                                                '[url='.$params['source_link'].']'.$params['source_name'].'[/url]',
                                                                $itemlink,
                                                                $item_post_type);
+               }
 
                // Some mail softwares relies on subject field for threading.
                // So, we cannot have different subjects for notifications of the same thread.
@@ -413,7 +413,6 @@ function notification($params) {
 
        $body      = $h['body'];
 
-       $sitelink  = $h['sitelink'];
        $tsitelink = $h['tsitelink'];
        $hsitelink = $h['hsitelink'];
        $itemlink  = $h['itemlink'];
@@ -455,8 +454,7 @@ function notification($params) {
                }
 
                // create notification entry in DB
-
-               $r = q("INSERT INTO `notify` (`hash`, `name`, `url`, `photo`, `date`, `uid`, `link`, `iid`, `parent`, `type`, `verb`, `otype`, `name_cache`)
+               q("INSERT INTO `notify` (`hash`, `name`, `url`, `photo`, `date`, `uid`, `link`, `iid`, `parent`, `type`, `verb`, `otype`, `name_cache`)
                        values('%s', '%s', '%s', '%s', '%s', %d, '%s', %d, %d, %d, '%s', '%s', '%s')",
                        dbesc($datarray['hash']),
                        dbesc($datarray['name']),
@@ -477,17 +475,15 @@ function notification($params) {
                        dbesc($hash),
                        intval($params['uid'])
                );
-               if ($r)
+               if ($r) {
                        $notify_id = $r[0]['id'];
-               else {
+               else {
                        pop_lang();
                        return False;
                }
 
                // we seem to have a lot of duplicate comment notifications due to race conditions, mostly from forums
                // After we've stored everything, look again to see if there are any duplicates and if so remove them
-
-               $p = null;
                $p = q("SELECT `id` FROM `notify` WHERE `type` IN (%d, %d) AND `link` = '%s' AND `uid` = %d ORDER BY `id`",
                        intval(NOTIFY_TAGSELF),
                        intval(NOTIFY_COMMENT),
@@ -500,18 +496,16 @@ function notification($params) {
                        }
 
                        // only continue on if we stored the first one
-
                        if ($notify_id != $p[0]['id']) {
                                pop_lang();
                                return False;
                        }
                }
 
-
                $itemlink = System::baseUrl().'/notify/view/'.$notify_id;
                $msg = replace_macros($epreamble, array('$itemlink' => $itemlink));
                $msg_cache = format_notification_message($datarray['name_cache'], strip_tags(bbcode($msg)));
-               $r = q("UPDATE `notify` SET `msg` = '%s', `msg_cache` = '%s' WHERE `id` = %d AND `uid` = %d",
+               q("UPDATE `notify` SET `msg` = '%s', `msg_cache` = '%s' WHERE `id` = %d AND `uid` = %d",
                        dbesc($msg),
                        dbesc($msg_cache),
                        intval($notify_id),
@@ -539,7 +533,7 @@ function notification($params) {
 
                        if (!$r) {
                                logger("notify_id:".intval($notify_id).", parent: ".intval($params['parent'])."uid: ".intval($params['uid']), LOGGER_DEBUG);
-                               $r = q("INSERT INTO `notify-threads` (`notify-id`, `master-parent-item`, `receiver-uid`, `parent-item`)
+                               q("INSERT INTO `notify-threads` (`notify-id`, `master-parent-item`, `receiver-uid`, `parent-item`)
                                        values(%d, %d, %d, %d)",
                                        intval($notify_id),
                                        intval($params['parent']),
@@ -637,7 +631,6 @@ function notification($params) {
                ));
 
                // use the Emailer class to send the message
-
                return Emailer::send(
                        array(
                        'uid' => $params['uid'],
index 584a7076768337537f7f548921e0b6b1cf0f06d2..d1359512a35a92e967de6c7cad4a353fa44099d0 100644 (file)
@@ -261,13 +261,10 @@ function event_store($arr) {
                $contact = $c[0];
        }
 
-
        // Existing event being modified.
-
        if ($arr['id']) {
 
                // has the event actually changed?
-
                $r = q("SELECT * FROM `event` WHERE `id` = %d AND `uid` = %d LIMIT 1",
                        intval($arr['id']),
                        intval($arr['uid'])
@@ -275,7 +272,6 @@ function event_store($arr) {
                if ((! DBM::is_result($r)) || ($r[0]['edited'] === $arr['edited'])) {
 
                        // Nothing has changed. Grab the item id to return.
-
                        $r = q("SELECT * FROM `item` WHERE `event-id` = %d AND `uid` = %d LIMIT 1",
                                intval($arr['id']),
                                intval($arr['uid'])
@@ -284,8 +280,7 @@ function event_store($arr) {
                }
 
                // The event changed. Update it.
-
-               $r = q("UPDATE `event` SET
+               q("UPDATE `event` SET
                        `edited` = '%s',
                        `start` = '%s',
                        `finish` = '%s',
@@ -309,6 +304,7 @@ function event_store($arr) {
                        intval($arr['id']),
                        intval($arr['uid'])
                );
+
                $r = q("SELECT * FROM `item` WHERE `event-id` = %d AND `uid` = %d LIMIT 1",
                        intval($arr['id']),
                        intval($arr['uid'])
@@ -336,8 +332,7 @@ function event_store($arr) {
                return $item_id;
        } else {
                // New event. Store it.
-
-               $r = q("INSERT INTO `event` (`uid`,`cid`,`guid`,`uri`,`created`,`edited`,`start`,`finish`,`summary`, `desc`,`location`,`type`,
+               q("INSERT INTO `event` (`uid`,`cid`,`guid`,`uri`,`created`,`edited`,`start`,`finish`,`summary`, `desc`,`location`,`type`,
                        `adjust`,`nofinish`,`allow_cid`,`allow_gid`,`deny_cid`,`deny_gid`)
                        VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s' ) ",
                        intval($arr['uid']),
@@ -403,21 +398,7 @@ function event_store($arr) {
                $item_arr['object'] .= '</object>' . "\n";
 
                $item_id = item_store($item_arr);
-
-               $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
-                       intval($arr['uid'])
-               );
-               //if (DBM::is_result($r))
-               //      $plink = System::baseUrl() . '/display/' . $r[0]['nickname'] . '/' . $item_id;
-
-
                if ($item_id) {
-                       //q("UPDATE `item` SET `plink` = '%s', `event-id` = %d  WHERE `uid` = %d AND `id` = %d",
-                       //      dbesc($plink),
-                       //      intval($event['id']),
-                       //      intval($arr['uid']),
-                       //      intval($item_id)
-                       //);
                        q("UPDATE `item` SET `event-id` = %d  WHERE `uid` = %d AND `id` = %d",
                                intval($event['id']),
                                intval($arr['uid']),
@@ -675,9 +656,12 @@ function process_events($arr) {
  * @param string $timezone The timezone of the user (not implemented yet).
  *
  * @return string Content according to selected export format.
+ *
+ * @todo Implement timezone support
  */
-function event_format_export ($events, $format = 'ical', $timezone) {
-       if (! ((is_array($events)) && count($events))) {
+function event_format_export($events, $format = 'ical', $timezone)
+{
+       if (!((is_array($events)) && count($events))) {
                return;
        }
 
index 0ac0078c859272b99f0db46b26d8c04866cd9193..64fe6a31093878ee04245301fbf0b4f8cfdb352d 100644 (file)
@@ -1,11 +1,11 @@
 <?php
-function create_files_from_item($itemid) {
-       $a = get_app();
 
+function create_files_from_item($itemid)
+{
        $messages = q("SELECT `guid`, `uid`, `id`, `edited`, `deleted`, `file`, `parent` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
-
-       if (!$messages)
+       if (!$messages) {
                return;
+       }
 
        $message = $messages[0];
 
@@ -19,18 +19,23 @@ function create_files_from_item($itemid) {
        if ($message["deleted"])
                return;
 
-       if (preg_match_all("/\[(.*?)\]/ism", $message["file"], $files))
-               foreach ($files[1] as $file)
-                       $r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')",
+       if (preg_match_all("/\[(.*?)\]/ism", $message["file"], $files)) {
+               foreach ($files[1] as $file) {
+                       q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')",
                                intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_FILE), dbesc($file));
+               }
+       }
 
-       if (preg_match_all("/\<(.*?)\>/ism", $message["file"], $files))
-               foreach ($files[1] as $file)
-                       $r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')",
+       if (preg_match_all("/\<(.*?)\>/ism", $message["file"], $files)) {
+               foreach ($files[1] as $file) {
+                       q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')",
                                intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CATEGORY), dbesc($file));
+               }
+       }
 }
 
-function create_files_from_itemuri($itemuri, $uid) {
+function create_files_from_itemuri($itemuri, $uid)
+{
        $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid));
 
        if (count($messages)) {
@@ -39,11 +44,12 @@ function create_files_from_itemuri($itemuri, $uid) {
        }
 }
 
-function update_files_for_items() {
+function update_files_for_items()
+{
        $messages = q("SELECT `id` FROM `item` where file !=''");
 
        foreach ($messages as $message) {
-               echo $message["id"]."\n";
+               echo $message["id"] . "\n";
                create_files_from_item($message["id"]);
        }
 }
index c9e81f7b37a169e54b4fd6deea5151af15fd38fd..9aedafb64d6287d2e154a2ccdfb8f27097bff001 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * @file include/follow.php
  */
@@ -16,21 +17,24 @@ use Friendica\Protocol\OStatus;
 use Friendica\Protocol\PortableContact;
 use Friendica\Protocol\Salmon;
 
-function update_contact($id) {
+function update_contact($id)
+{
        /*
-       Warning: Never ever fetch the public key via Probe::uri and write it into the contacts.
-       This will reliably kill your communication with Friendica contacts.
-       */
+         Warning: Never ever fetch the public key via Probe::uri and write it into the contacts.
+         This will reliably kill your communication with Friendica contacts.
+        */
 
        $r = q("SELECT `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `network` FROM `contact` WHERE `id` = %d", intval($id));
-       if (!$r)
+       if (!$r) {
                return false;
+       }
 
        $ret = Probe::uri($r[0]["url"]);
 
        // If Probe::uri fails the network code will be different
-       if ($ret["network"] != $r[0]["network"])
+       if ($ret["network"] != $r[0]["network"]) {
                return false;
+       }
 
        $update = false;
 
@@ -43,8 +47,9 @@ function update_contact($id) {
                        $update = true;
        }
 
-       if (!$update)
+       if (!$update) {
                return true;
+       }
 
        q("UPDATE `contact` SET `url` = '%s', `nurl` = '%s', `addr` = '%s', `alias` = '%s', `batch` = '%s', `notify` = '%s', `poll` = '%s', `poco` = '%s' WHERE `id` = %d",
                dbesc($ret['url']),
@@ -64,29 +69,34 @@ function update_contact($id) {
        return true;
 }
 
-//
-// Takes a $uid and a url/handle and adds a new contact
-// Currently if the contact is DFRN, interactive needs to be true, to redirect to the
-// dfrn_request page.
-
-// Otherwise this can be used to bulk add statusnet contacts, twitter contacts, etc.
-// Returns an array
-//  $return['success'] boolean true if successful
-//  $return['message'] error text if success is false.
-
-
-
-function new_contact($uid, $url, $interactive = false, $network = '') {
-
-       $result = array('cid' => -1, 'success' => false,'message' => '');
+/**
+ * Takes a $uid and a url/handle and adds a new contact
+ * Currently if the contact is DFRN, interactive needs to be true, to redirect to the
+ * dfrn_request page.
+ *
+ * Otherwise this can be used to bulk add statusnet contacts, twitter contacts, etc.
+ *
+ * Returns an array
+ * $return['success'] boolean true if successful
+ * $return['message'] error text if success is false.
+ *
+ * @brief Takes a $uid and a url/handle and adds a new contact
+ * @param int    $uid
+ * @param string $url
+ * @param bool   $interactive
+ * @param string $network
+ * @return boolean|string
+ */
+function new_contact($uid, $url, $interactive = false, $network = '')
+{
+       $result = array('cid' => -1, 'success' => false, 'message' => '');
 
        $a = get_app();
 
        // remove ajax junk, e.g. Twitter
+       $url = str_replace('/#!/', '/', $url);
 
-       $url = str_replace('/#!/','/',$url);
-
-       if (! allowed_url($url)) {
+       if (!allowed_url($url)) {
                $result['message'] = t('Disallowed profile URL.');
                return $result;
        }
@@ -96,7 +106,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
                return $result;
        }
 
-       if (! $url) {
+       if (!$url) {
                $result['message'] = t('Connect URL missing.');
                return $result;
        }
@@ -105,14 +115,14 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 
        call_hooks('follow', $arr);
 
-       if (x($arr['contact'],'name')) {
+       if (x($arr['contact'], 'name')) {
                $ret = $arr['contact'];
        } else {
                $ret = Probe::uri($url, $network, $uid, false);
        }
 
        if (($network != '') && ($ret['network'] != $network)) {
-               logger('Expected network '.$network.' does not match actual network '.$ret['network']);
+               logger('Expected network ' . $network . ' does not match actual network ' . $ret['network']);
                return result;
        }
 
@@ -128,7 +138,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 
                        // NOTREACHED
                }
-       } elseif (Config::get('system','dfrn_only')) {
+       } elseif (Config::get('system', 'dfrn_only')) {
                $result['message'] = t('This site is not configured to allow communications with other networks.') . EOL;
                $result['message'] != t('No compatible communication protocols or feeds were discovered.') . EOL;
                return $result;
@@ -136,36 +146,36 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 
        // This extra param just confuses things, remove it
        if ($ret['network'] === NETWORK_DIASPORA) {
-               $ret['url'] = str_replace('?absolute=true','',$ret['url']);
+               $ret['url'] = str_replace('?absolute=true', '', $ret['url']);
        }
 
        // do we have enough information?
 
-       if (! ((x($ret,'name')) && (x($ret,'poll')) && ((x($ret,'url')) || (x($ret,'addr'))))) {
-               $result['message'] .=  t('The profile address specified does not provide adequate information.') . EOL;
-               if (! x($ret,'poll')) {
+       if (!((x($ret, 'name')) && (x($ret, 'poll')) && ((x($ret, 'url')) || (x($ret, 'addr'))))) {
+               $result['message'] .= t('The profile address specified does not provide adequate information.') . EOL;
+               if (!x($ret, 'poll')) {
                        $result['message'] .= t('No compatible communication protocols or feeds were discovered.') . EOL;
                }
-               if (! x($ret,'name')) {
-                       $result['message'] .=  t('An author or name was not found.') . EOL;
+               if (!x($ret, 'name')) {
+                       $result['message'] .= t('An author or name was not found.') . EOL;
                }
-               if (! x($ret,'url')) {
-                       $result['message'] .=  t('No browser URL could be matched to this address.') . EOL;
+               if (!x($ret, 'url')) {
+                       $result['message'] .= t('No browser URL could be matched to this address.') . EOL;
                }
-               if (strpos($url,'@') !== false) {
-                       $result['message'] .=  t('Unable to match @-style Identity Address with a known protocol or email contact.') . EOL;
-                       $result['message'] .=  t('Use mailto: in front of address to force email check.') . EOL;
+               if (strpos($url, '@') !== false) {
+                       $result['message'] .= t('Unable to match @-style Identity Address with a known protocol or email contact.') . EOL;
+                       $result['message'] .= t('Use mailto: in front of address to force email check.') . EOL;
                }
                return $result;
        }
 
-       if ($ret['network'] === NETWORK_OSTATUS && Config::get('system','ostatus_disabled')) {
+       if ($ret['network'] === NETWORK_OSTATUS && Config::get('system', 'ostatus_disabled')) {
                $result['message'] .= t('The profile address specified belongs to a network which has been disabled on this site.') . EOL;
                $ret['notify'] = '';
        }
 
-       if (! $ret['notify']) {
-               $result['message'] .=  t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL;
+       if (!$ret['notify']) {
+               $result['message'] .= t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL;
        }
 
        $writeable = ((($ret['network'] === NETWORK_OSTATUS) && ($ret['notify'])) ? 1 : 0);
@@ -189,10 +199,11 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
                dbesc($ret['network'])
        );
 
-       if (!DBM::is_result($r))
+       if (!DBM::is_result($r)) {
                $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` = '%s' LIMIT 1",
                        intval($uid), dbesc(normalise_link($url)), dbesc($ret['network'])
-       );
+               );
+       }
 
        if (DBM::is_result($r)) {
                // update contact
@@ -204,7 +215,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
                $new_relation = ((in_array($ret['network'], array(NETWORK_MAIL))) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING);
 
                // create contact record
-               $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `network`, `pubkey`, `rel`, `priority`,
+               q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `network`, `pubkey`, `rel`, `priority`,
                        `writable`, `hidden`, `blocked`, `readonly`, `pending`, `subhub` )
                        VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0, 0, 0, %d ) ",
                        intval($uid),
@@ -235,13 +246,13 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
                intval($uid)
        );
 
-       if (! DBM::is_result($r)) {
-               $result['message'] .=  t('Unable to retrieve contact information.') . EOL;
+       if (!DBM::is_result($r)) {
+               $result['message'] .= t('Unable to retrieve contact information.') . EOL;
                return $result;
        }
 
        $contact = $r[0];
-       $contact_id  = $r[0]['id'];
+       $contact_id = $r[0]['id'];
        $result['cid'] = $contact_id;
 
        Group::addMember(User::getDefaultGroup($uid, $contact["network"]), $contact_id);
@@ -270,7 +281,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 
                if ($contact['network'] == NETWORK_DIASPORA) {
                        $ret = Diaspora::sendShare($a->user, $contact);
-                       logger('share returns: '.$ret);
+                       logger('share returns: ' . $ret);
                }
        }
 
index 72185de3b5c9bea9eaf1c53f8371c23ba87f0aba..83aa05ed565691029e463b6d7160156849e4a1ef 100644 (file)
@@ -1,15 +1,14 @@
 <?php
-require_once("include/html2bbcode.php");
+
+require_once 'include/html2bbcode.php';
 
 function breaklines($line, $level, $wraplength = 75)
 {
-
-       if ($wraplength == 0)
+       if ($wraplength == 0) {
                $wraplength = 2000000;
+       }
 
-       //      return($line);
-
-       $wraplen = $wraplength-$level;
+       $wraplen = $wraplength - $level;
 
        $newlines = array();
 
@@ -20,27 +19,28 @@ function breaklines($line, $level, $wraplength = 75)
 
                $pos = strrpos($subline, ' ');
 
-               if ($pos == 0)
+               if ($pos == 0) {
                        $pos = strpos($line, ' ');
+               }
 
                if (($pos > 0) && strlen($line) > $wraplen) {
                        $newline = trim(substr($line, 0, $pos));
-                       if ($level > 0)
-                               $newline = str_repeat(">", $level).' '.$newline;
+                       if ($level > 0) {
+                               $newline = str_repeat(">", $level) . ' ' . $newline;
+                       }
 
-                       $newlines[] = $newline." ";
-                       $line = substr($line, $pos+1);
+                       $newlines[] = $newline . " ";
+                       $line = substr($line, $pos + 1);
                }
-
        } while ((strlen($line) > $wraplen) && !($oldline == $line));
 
-       if ($level > 0)
-               $line = str_repeat(">", $level).' '.$line;
+       if ($level > 0) {
+               $line = str_repeat(">", $level) . ' ' . $line;
+       }
 
        $newlines[] = $line;
 
-
-       return(implode($newlines, "\n"));
+       return implode($newlines, "\n");
 }
 
 function quotelevel($message, $wraplength = 75)
@@ -49,62 +49,72 @@ function quotelevel($message, $wraplength = 75)
 
        $newlines = array();
        $level = 0;
-       foreach ($lines as $line) {;
+       foreach ($lines as $line) {
                $line = trim($line);
                $startquote = false;
-               while (strpos("*".$line, '[quote]') > 0) {
+               while (strpos("*" . $line, '[quote]') > 0) {
                        $level++;
                        $pos = strpos($line, '[quote]');
-                       $line = substr($line, 0, $pos).substr($line, $pos+7);
+                       $line = substr($line, 0, $pos) . substr($line, $pos + 7);
                        $startquote = true;
                }
 
                $currlevel = $level;
 
-               while (strpos("*".$line, '[/quote]') > 0) {
+               while (strpos("*" . $line, '[/quote]') > 0) {
                        $level--;
-                       if ($level < 0)
+                       if ($level < 0) {
                                $level = 0;
+                       }
 
                        $pos = strpos($line, '[/quote]');
-                       $line = substr($line, 0, $pos).substr($line, $pos+8);
+                       $line = substr($line, 0, $pos) . substr($line, $pos + 8);
                }
 
-               if (!$startquote || ($line != ''))
+               if (!$startquote || ($line != '')) {
                        $newlines[] = breaklines($line, $currlevel, $wraplength);
+               }
        }
-       return(implode($newlines, "\n"));
+
+       return implode($newlines, "\n");
 }
 
-function collecturls($message) {
+function collecturls($message)
+{
        $pattern = '/<a.*?href="(.*?)".*?>(.*?)<\/a>/is';
        preg_match_all($pattern, $message, $result, PREG_SET_ORDER);
 
        $urls = array();
        foreach ($result as $treffer) {
-
                $ignore = false;
 
                // A list of some links that should be ignored
                $list = array("/user/", "/tag/", "/group/", "/profile/", "/search?search=", "/search?tag=", "mailto:", "/u/", "/node/",
-                               "//facebook.com/profile.php?id=", "//plus.google.com/", "//twitter.com/");
-               foreach ($list as $listitem)
-                       if (strpos($treffer[1], $listitem) !== false)
+                       "//facebook.com/profile.php?id=", "//plus.google.com/", "//twitter.com/");
+               foreach ($list as $listitem) {
+                       if (strpos($treffer[1], $listitem) !== false) {
                                $ignore = true;
+                       }
+               }
 
-               if ((strpos($treffer[1], "//twitter.com/") !== false) && (strpos($treffer[1], "/status/") !== false))
-                               $ignore = false;
+               if ((strpos($treffer[1], "//twitter.com/") !== false) && (strpos($treffer[1], "/status/") !== false)) {
+                       $ignore = false;
+               }
 
-               if ((strpos($treffer[1], "//plus.google.com/") !== false) && (strpos($treffer[1], "/posts") !== false))
-                               $ignore = false;
+               if ((strpos($treffer[1], "//plus.google.com/") !== false) && (strpos($treffer[1], "/posts") !== false)) {
+                       $ignore = false;
+               }
 
-               if ((strpos($treffer[1], "//plus.google.com/") !== false) && (strpos($treffer[1], "/photos") !== false))
-                               $ignore = false;
+               if ((strpos($treffer[1], "//plus.google.com/") !== false) && (strpos($treffer[1], "/photos") !== false)) {
+                       $ignore = false;
+               }
 
-               if (!$ignore)
+               if (!$ignore) {
                        $urls[$treffer[1]] = $treffer[1];
+               }
        }
-       return($urls);
+
+       return $urls;
 }
 
 function html2plain($html, $wraplength = 75, $compact = false)
@@ -140,20 +150,21 @@ function html2plain($html, $wraplength = 75, $compact = false)
 
        // MyBB-Auszeichnungen
        /*
-       node2bbcode($doc, 'span', array('style'=>'text-decoration: underline;'), '_', '_');
-       node2bbcode($doc, 'span', array('style'=>'font-style: italic;'), '/', '/');
-       node2bbcode($doc, 'span', array('style'=>'font-weight: bold;'), '*', '*');
+         node2bbcode($doc, 'span', array('style'=>'text-decoration: underline;'), '_', '_');
+         node2bbcode($doc, 'span', array('style'=>'font-style: italic;'), '/', '/');
+         node2bbcode($doc, 'span', array('style'=>'font-weight: bold;'), '*', '*');
 
-       node2bbcode($doc, 'strong', array(), '*', '*');
-       node2bbcode($doc, 'b', array(), '*', '*');
-       node2bbcode($doc, 'i', array(), '/', '/');
-       node2bbcode($doc, 'u', array(), '_', '_');
-       */
+         node2bbcode($doc, 'strong', array(), '*', '*');
+         node2bbcode($doc, 'b', array(), '*', '*');
+         node2bbcode($doc, 'i', array(), '/', '/');
+         node2bbcode($doc, 'u', array(), '_', '_');
+        */
 
-       if ($compact)
+       if ($compact) {
                node2bbcode($doc, 'blockquote', array(), "»", "«");
-       else
+       } else {
                node2bbcode($doc, 'blockquote', array(), '[quote]', "[/quote]\n");
+       }
 
        node2bbcode($doc, 'br', array(), "\n", '');
 
@@ -166,7 +177,7 @@ function html2plain($html, $wraplength = 75, $compact = false)
        //node2bbcode($doc, 'ol', array(), "\n[list=1]", "[/list]\n");
        node2bbcode($doc, 'li', array(), "\n* ", "\n");
 
-       node2bbcode($doc, 'hr', array(), "\n".str_repeat("-", 70)."\n", "");
+       node2bbcode($doc, 'hr', array(), "\n" . str_repeat("-", 70) . "\n", "");
 
        node2bbcode($doc, 'tr', array(), "\n", "");
        node2bbcode($doc, 'td', array(), "\t", "");
@@ -184,12 +195,13 @@ function html2plain($html, $wraplength = 75, $compact = false)
        //node2bbcode($doc, 'img', array('alt'=>'/(.+)/'), '$1', '');
        //node2bbcode($doc, 'img', array('title'=>'/(.+)/'), '$1', '');
        //node2bbcode($doc, 'img', array(), '', '');
-       if (!$compact)
-               node2bbcode($doc, 'img', array('src'=>'/(.+)/'), ' [img]$1', '[/img] ');
-       else
-               node2bbcode($doc, 'img', array('src'=>'/(.+)/'), ' ', ' ');
+       if (!$compact) {
+               node2bbcode($doc, 'img', array('src' => '/(.+)/'), ' [img]$1', '[/img] ');
+       } else {
+               node2bbcode($doc, 'img', array('src' => '/(.+)/'), ' ', ' ');
+       }
 
-       node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), ' $1 ', '', true);
+       node2bbcode($doc, 'iframe', array('src' => '/(.+)/'), ' $1 ', '');
 
        $message = $doc->saveHTML();
 
@@ -200,7 +212,7 @@ function html2plain($html, $wraplength = 75, $compact = false)
 
        // was ersetze ich da?
        // Irgendein stoerrisches UTF-Zeug
-       $message = str_replace(chr(194).chr(160), ' ', $message);
+       $message = str_replace(chr(194) . chr(160), ' ', $message);
 
        $message = str_replace("&nbsp;", " ", $message);
 
@@ -212,13 +224,12 @@ function html2plain($html, $wraplength = 75, $compact = false)
 
        $message = html_entity_decode($message, ENT_QUOTES, 'UTF-8');
 
-       if (!$compact && ($message != "")) {
-               $counter = 1;
-               foreach ($urls as $id=>$url)
-                       if ($url != "")
-                               if (strpos($message, $url) === false)
-                                       $message .= "\n".$url." ";
-                                       //$message .= "\n[".($counter++)."] ".$url;
+       if (!$compact && ($message != '')) {
+               foreach ($urls as $id => $url) {
+                       if ($url != '' && strpos($message, $url) === false) {
+                               $message .= "\n" . $url . ' ';
+                       }
+               }
        }
 
        $message = str_replace("\n«", "«\n", $message);
@@ -231,5 +242,5 @@ function html2plain($html, $wraplength = 75, $compact = false)
 
        $message = quotelevel(trim($message), $wraplength);
 
-       return(trim($message));
+       return trim($message);
 }
index d78935778ae800cf2d4cb2d3ec37f3a3f215803f..6c9627a1db48167d910fb07fe7bd64063f0bca72 100644 (file)
@@ -230,7 +230,6 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
 
        $o = '';
        $location = false;
-       $address = false;
 
        // This function can also use contact information in $profile
        $is_contact = x($profile, 'cid');
@@ -381,7 +380,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
        $xmpp     = x($profile, 'xmpp')     ? t('XMPP:')     : false;
 
        if ((x($profile, 'hidewall') || $block) && !local_user() && !remote_user()) {
-               $location = $pdesc = $gender = $marital = $homepage = $about = false;
+               $location = $gender = $marital = $homepage = $about = false;
        }
 
        $split_name = Diaspora::splitName($profile['name']);
@@ -551,10 +550,8 @@ function get_birthdays()
                                $cids[] = $rr['cid'];
 
                                $today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
-                               $sparkle = '';
                                $url = $rr['url'];
                                if ($rr['network'] === NETWORK_DFRN) {
-                                       $sparkle = ' sparkle';
                                        $url = System::baseUrl() . '/redir/' . $rr['cid'];
                                }
 
index 8f15f94799be7e9463daf13409a1dc68e740faca..9e7a4621af9ba966b9ed4fa3757af8bc6532b95f 100644 (file)
@@ -3,7 +3,6 @@
  * @file include/items.php
  */
 use Friendica\App;
-use Friendica\ParseUrl;
 use Friendica\Content\Feature;
 use Friendica\Core\Config;
 use Friendica\Core\PConfig;
@@ -18,6 +17,7 @@ use Friendica\Object\Image;
 use Friendica\Protocol\DFRN;
 use Friendica\Protocol\OStatus;
 use Friendica\Protocol\Feed;
+use Friendica\Util\ParseUrl;
 
 require_once 'include/bbcode.php';
 require_once 'include/tags.php';
@@ -37,13 +37,20 @@ function construct_verb($item) {
 
 /* limit_body_size()
  *
- *             The purpose of this function is to apply system message length limits to
- *             imported messages without including any embedded photos in the length
+ *
+ *
  */
-function limit_body_size($body) {
-
-//     logger('limit_body_size: start', LOGGER_DEBUG);
 
+/**
+ * The purpose of this function is to apply system message length limits to
+ * imported messages without including any embedded photos in the length
+ *
+ * @brief Truncates imported message body string length to max_import_size
+ * @param string $body
+ * @return string
+ */
+function limit_body_size($body)
+{
        $maxlen = get_max_import_size();
 
        // If the length of the body, including the embedded images, is smaller
@@ -55,7 +62,6 @@ function limit_body_size($body) {
                $orig_body = $body;
                $new_body = '';
                $textlen = 0;
-               $max_found = false;
 
                $img_start = strpos($orig_body, '[img');
                $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
@@ -110,12 +116,10 @@ function limit_body_size($body) {
                        if ($textlen < $maxlen) {
                                logger('limit_body_size: the limit happens after the end of the last image', LOGGER_DEBUG);
                                $new_body = $new_body . substr($orig_body, 0, $maxlen - $textlen);
-                               $textlen = $maxlen;
                        }
                } else {
                        logger('limit_body_size: the text size with embedded images extracted did not violate the limit', LOGGER_DEBUG);
                        $new_body = $new_body . $orig_body;
-                       $textlen += strlen($orig_body);
                }
 
                return $new_body;
@@ -169,12 +173,6 @@ function add_page_info_data($data) {
                return "";
        }
 
-       if (sizeof($data["images"]) > 0) {
-               $preview = $data["images"][0];
-       } else {
-               $preview = "";
-       }
-
        // Escape some bad characters
        $data["url"] = str_replace(array("[", "]"), array("&#91;", "&#93;"), htmlentities($data["url"], ENT_QUOTES, 'UTF-8', false));
        $data["title"] = str_replace(array("[", "]"), array("&#91;", "&#93;"), htmlentities($data["title"], ENT_QUOTES, 'UTF-8', false));
@@ -854,7 +852,6 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f
                        logger("item_store: Checking if parent ".$parent_id." has to be tagged as mention for user ".$arr['uid'], LOGGER_DEBUG);
                        $u = q("SELECT `nickname` FROM `user` WHERE `uid` = %d", intval($arr['uid']));
                        if (DBM::is_result($u)) {
-                               $a = get_app();
                                $self = normalise_link(System::baseUrl() . '/profile/' . $u[0]['nickname']);
                                logger("item_store: 'myself' is ".$self." for parent ".$parent_id." checking against ".$arr['author-link']." and ".$arr['owner-link'], LOGGER_DEBUG);
                                if ((normalise_link($arr['author-link']) == $self) || (normalise_link($arr['owner-link']) == $self)) {
@@ -1051,7 +1048,7 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f
        }
 
        // Set parent id
-       $r = dba::update('item', array('parent' => $parent_id), array('id' => $current_post));
+       dba::update('item', array('parent' => $parent_id), array('id' => $current_post));
 
        $arr['id'] = $current_post;
        $arr['parent'] = $parent_id;
@@ -1119,7 +1116,7 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f
         * It is done after the transaction to avoid dead locks.
         */
        if ($arr['last-child']) {
-               $r = q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d AND `id` != %d",
+               q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d AND `id` != %d",
                        dbesc($arr['uri']),
                        intval($arr['uid']),
                        intval($current_post)
@@ -1205,8 +1202,6 @@ function item_body_set_hashtags(&$item) {
        // Otherwise there could be problems with hashtags like #test and #test2
        rsort($tags);
 
-       $a = get_app();
-
        $URLSearchString = "^\[\]";
 
        // All hashtags should point to the home server if "local_tags" is activated
@@ -1315,7 +1310,6 @@ function get_item_contact($item, $contacts) {
        foreach ($contacts as $contact) {
                if ($contact['id'] == $item['contact-id']) {
                        return $contact;
-                       break; // NOTREACHED
                }
        }
        return false;
@@ -1327,16 +1321,13 @@ function get_item_contact($item, $contacts) {
  * @param int $item_id
  * @return bool true if item was deleted, else false
  */
-function tag_deliver($uid, $item_id) {
-
-       $a = get_app();
-
+function tag_deliver($uid, $item_id)
+{
        $mention = false;
 
        $u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
                intval($uid)
        );
-
        if (! DBM::is_result($u)) {
                return;
        }
@@ -1344,7 +1335,6 @@ function tag_deliver($uid, $item_id) {
        $community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
        $prvgroup = (($u[0]['page-flags'] == PAGE_PRVGROUP) ? true : false);
 
-
        $i = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
                intval($item_id),
                intval($uid)
@@ -1674,15 +1664,13 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) {
        if (is_array($contact)) {
                if (($contact['network'] == NETWORK_OSTATUS && $contact['rel'] == CONTACT_IS_SHARING)
                        || ($sharing && $contact['rel'] == CONTACT_IS_FOLLOWER)) {
-                       $r = dba::update('contact', array('rel' => CONTACT_IS_FRIEND, 'writable' => true),
+                       dba::update('contact', array('rel' => CONTACT_IS_FRIEND, 'writable' => true),
                                        array('id' => $contact['id'], 'uid' => $importer['uid']));
                }
                // send email notification to owner?
        } else {
-
                // create contact record
-
-               $r = q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `name`, `nick`, `photo`, `network`, `rel`,
+               q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `name`, `nick`, `photo`, `network`, `rel`,
                        `blocked`, `readonly`, `pending`, `writable`)
                        VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, 0, 0, 1, 1)",
                        intval($importer['uid']),
@@ -1695,6 +1683,7 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) {
                        dbesc(NETWORK_OSTATUS),
                        intval(CONTACT_IS_FOLLOWER)
                );
+
                $r = q("SELECT `id`, `network` FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `pending` = 1 LIMIT 1",
                                intval($importer['uid']),
                                dbesc($url)
@@ -1708,9 +1697,7 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) {
                $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
                        intval($importer['uid'])
                );
-
                if (DBM::is_result($r) && !in_array($r[0]['page-flags'], array(PAGE_SOAPBOX, PAGE_FREELOVE, PAGE_COMMUNITY))) {
-
                        // create notification
                        $hash = random_string();
 
@@ -1742,7 +1729,7 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) {
 
                        }
                } elseif (DBM::is_result($r) && in_array($r[0]['page-flags'], array(PAGE_SOAPBOX, PAGE_FREELOVE, PAGE_COMMUNITY))) {
-                       $r = q("UPDATE `contact` SET `pending` = 0 WHERE `uid` = %d AND `url` = '%s' AND `pending` LIMIT 1",
+                       q("UPDATE `contact` SET `pending` = 0 WHERE `uid` = %d AND `url` = '%s' AND `pending` LIMIT 1",
                                        intval($importer['uid']),
                                        dbesc($url)
                        );
@@ -1798,7 +1785,7 @@ function subscribe_to_hub($url, $importer, $contact, $hubmode = 'subscribe') {
        logger('subscribe_to_hub: ' . $hubmode . ' ' . $contact['name'] . ' to hub ' . $url . ' endpoint: '  . $push_url . ' with verifier ' . $verify_token);
 
        if (!strlen($contact['hub-verify']) || ($contact['hub-verify'] != $verify_token)) {
-               $r = dba::update('contact', array('hub-verify' => $verify_token), array('id' => $contact['id']));
+               dba::update('contact', array('hub-verify' => $verify_token), array('id' => $contact['id']));
        }
 
        post_url($url, $params);
@@ -1809,16 +1796,22 @@ function subscribe_to_hub($url, $importer, $contact, $hubmode = 'subscribe') {
 
 }
 
-function fix_private_photos($s, $uid, $item = null, $cid = 0) {
-
-       if (Config::get('system','disable_embedded')) {
+/**
+ *
+ * @param string $s
+ * @param int    $uid
+ * @param array  $item
+ * @param int    $cid
+ * @return string
+ */
+function fix_private_photos($s, $uid, $item = null, $cid = 0)
+{
+       if (Config::get('system', 'disable_embedded')) {
                return $s;
        }
 
-       $a = get_app();
-
        logger('fix_private_photos: check for photos', LOGGER_DEBUG);
-       $site = substr(System::baseUrl(),strpos(System::baseUrl(),'://'));
+       $site = substr(System::baseUrl(), strpos(System::baseUrl(), '://'));
 
        $orig_body = $s;
        $new_body = '';
@@ -1826,19 +1819,18 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
        $img_start = strpos($orig_body, '[img');
        $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
        $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/img]') : false);
-       while ( ($img_st_close !== false) && ($img_len !== false) ) {
 
+       while (($img_st_close !== false) && ($img_len !== false)) {
                $img_st_close++; // make it point to AFTER the closing bracket
                $image = substr($orig_body, $img_start + $img_st_close, $img_len);
 
                logger('fix_private_photos: found photo ' . $image, LOGGER_DEBUG);
 
-
-               if (stristr($image , $site . '/photo/')) {
+               if (stristr($image, $site . '/photo/')) {
                        // Only embed locally hosted photos
                        $replace = false;
                        $i = basename($image);
-                       $i = str_replace(array('.jpg', '.png', '.gif'),array('', '',''), $i);
+                       $i = str_replace(array('.jpg', '.png', '.gif'), array('', '', ''), $i);
                        $x = strpos($i, '-');
 
                        if ($x) {
@@ -1848,7 +1840,6 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
                                        dbesc($i),
                                        intval($res),
                                        intval($uid)
-
                                );
                                if (DBM::is_result($r)) {
                                        /*
@@ -2161,7 +2152,7 @@ function drop_item($id, $interactive = true) {
                logger('delete item: ' . $item['id'], LOGGER_DEBUG);
 
                // delete the item
-               $r = dba::update('item', array('deleted' => true, 'title' => '', 'body' => '',
+               dba::update('item', array('deleted' => true, 'title' => '', 'body' => '',
                                        'edited' => datetime_convert(), 'changed' => datetime_convert()),
                                array('id' => $item['id']));
 
@@ -2229,12 +2220,12 @@ function drop_item($id, $interactive = true) {
 
                // Now delete them
                if ($parentid != "") {
-                       $r = q("DELETE FROM `sign` WHERE `iid` IN (%s)", dbesc($parentid));
+                       q("DELETE FROM `sign` WHERE `iid` IN (%s)", dbesc($parentid));
                }
 
                // If it's the parent of a comment thread, kill all the kids
                if ($item['uri'] == $item['parent-uri']) {
-                       $r = dba::update('item', array('deleted' => true, 'title' => '', 'body' => '',
+                       dba::update('item', array('deleted' => true, 'title' => '', 'body' => '',
                                        'edited' => datetime_convert(), 'changed' => datetime_convert()),
                                array('parent-uri' => $item['parent-uri'], 'uid' => $item['uid']));
 
index 8b8759c2f6401b90061cb6c90092d306e3f50c0d..793ea04215e62b0be9607b667d70373c7f5ce7fd 100644 (file)
@@ -85,7 +85,7 @@ function do_like($item_id, $verb) {
                $uid = local_user();
        }
 
-       if (!can_write_wall($a, $uid)) {
+       if (!can_write_wall($uid)) {
                logger('like: unable to write on wall ' . $uid);
                return false;
        }
index e49647b6ef7c9868fe162a28a31298a6e180711c..844a803c090243ec733ae8a07e8741c831a3f923 100644 (file)
@@ -7,29 +7,32 @@ use Friendica\Core\System;
 use Friendica\Core\Worker;
 use Friendica\Database\DBM;
 
-function send_message($recipient=0, $body='', $subject='', $replyto=''){
-
+function send_message($recipient = 0, $body = '', $subject = '', $replyto = '')
+{
        $a = get_app();
 
-       if (! $recipient) return -1;
+       if (!$recipient) {
+               return -1;
+       }
 
-       if (! strlen($subject))
+       if (!strlen($subject)) {
                $subject = t('[no subject]');
+       }
 
        $me = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
                intval(local_user())
        );
        $contact = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
-                       intval($recipient),
-                       intval(local_user())
+               intval($recipient),
+               intval(local_user())
        );
 
-       if (! (count($me) && (count($contact)))) {
+       if (!(count($me) && (count($contact)))) {
                return -2;
        }
 
        $guid = get_guid(32);
-       $uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
+       $uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
 
        $convid = 0;
        $reply = false;
@@ -38,51 +41,50 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
 
        if (strlen($replyto)) {
                $reply = true;
-               $r = q("select convid from mail where uid = %d and ( uri = '%s' or `parent-uri` = '%s' ) limit 1",
+               $r = q("SELECT `convid` FROM `mail` WHERE `uid` = %d AND (`uri` = '%s' OR `parent-uri` = '%s') LIMIT 1",
                        intval(local_user()),
                        dbesc($replyto),
                        dbesc($replyto)
                );
-               if (DBM::is_result($r))
+               if (DBM::is_result($r)) {
                        $convid = $r[0]['convid'];
+               }
        }
 
-       if (! $convid) {
-
+       if (!$convid) {
                // create a new conversation
-
-               $recip_host = substr($contact[0]['url'],strpos($contact[0]['url'],'://')+3);
-               $recip_host = substr($recip_host,0,strpos($recip_host,'/'));
+               $recip_host = substr($contact[0]['url'], strpos($contact[0]['url'], '://') + 3);
+               $recip_host = substr($recip_host, 0, strpos($recip_host, '/'));
 
                $recip_handle = (($contact[0]['addr']) ? $contact[0]['addr'] : $contact[0]['nick'] . '@' . $recip_host);
-               $sender_handle = $a->user['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(),'://') + 3);
+               $sender_handle = $a->user['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
 
                $conv_guid = get_guid(32);
-               $convuri = $recip_handle.':'.$conv_guid;
+               $convuri = $recip_handle . ':' . $conv_guid;
 
                $handles = $recip_handle . ';' . $sender_handle;
 
                $fields = array('uid' => local_user(), 'guid' => $conv_guid, 'creator' => $sender_handle,
-                               'created' => datetime_convert(), 'updated' => datetime_convert(),
-                               'subject' => $subject, 'recips' => $handles);
-               $r = dba::insert('conv', $fields);
+                       'created' => datetime_convert(), 'updated' => datetime_convert(),
+                       'subject' => $subject, 'recips' => $handles);
+               dba::insert('conv', $fields);
 
                $r = dba::select('conv', array('id'), array('guid' => $conv_guid, 'uid' => local_user()), array('limit' => 1));
-               if (DBM::is_result($r))
+               if (DBM::is_result($r)) {
                        $convid = $r['id'];
+               }
        }
 
-       if (! $convid) {
+       if (!$convid) {
                logger('send message: conversation not found.');
                return -4;
        }
 
-       if (! strlen($replyto)) {
+       if (!strlen($replyto)) {
                $replyto = $convuri;
        }
 
-
-       $r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
+       q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
                `contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`)
                VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s' )",
                intval(local_user()),
@@ -107,8 +109,9 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
                dbesc($uri),
                intval(local_user())
        );
-       if (DBM::is_result($r))
+       if (DBM::is_result($r)) {
                $post_id = $r[0]['id'];
+       }
 
        /**
         *
@@ -121,19 +124,17 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
         * post and set them to the same permissions as the post itself.
         *
         */
-
        $match = null;
-
-       if (preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) {
+       if (preg_match_all("/\[img\](.*?)\[\/img\]/", $body, $match)) {
                $images = $match[1];
                if (count($images)) {
                        foreach ($images as $image) {
-                               if (! stristr($image,System::baseUrl() . '/photo/')) {
+                               if (!stristr($image, System::baseUrl() . '/photo/')) {
                                        continue;
                                }
-                               $image_uri = substr($image,strrpos($image,'/') + 1);
-                               $image_uri = substr($image_uri,0, strpos($image_uri,'-'));
-                               $r = q("UPDATE `photo` SET `allow_cid` = '%s'
+                               $image_uri = substr($image, strrpos($image, '/') + 1);
+                               $image_uri = substr($image_uri, 0, strpos($image_uri, '-'));
+                               q("UPDATE `photo` SET `allow_cid` = '%s'
                                        WHERE `resource-id` = '%s' AND `album` = '%s' AND `uid` = %d ",
                                        dbesc('<' . $recipient . '>'),
                                        dbesc($image_uri),
@@ -150,46 +151,42 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
        } else {
                return -3;
        }
-
 }
 
-function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
-
-       if (! $recipient) {
+function send_wallmessage($recipient = '', $body = '', $subject = '', $replyto = '')
+{
+       if (!$recipient) {
                return -1;
        }
 
-       if (! strlen($subject)) {
+       if (!strlen($subject)) {
                $subject = t('[no subject]');
        }
 
        $guid = get_guid(32);
-       $uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
-
-       $convid = 0;
-       $reply = false;
+       $uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
 
        $me = Probe::uri($replyto);
 
-       if (! $me['name']) {
+       if (!$me['name']) {
                return -2;
        }
 
        $conv_guid = get_guid(32);
 
-       $recip_handle = $recipient['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(),'://') + 3);
+       $recip_handle = $recipient['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
 
        $sender_nick = basename($replyto);
-       $sender_host = substr($replyto,strpos($replyto,'://')+3);
-       $sender_host = substr($sender_host,0,strpos($sender_host,'/'));
+       $sender_host = substr($replyto, strpos($replyto, '://') + 3);
+       $sender_host = substr($sender_host, 0, strpos($sender_host, '/'));
        $sender_handle = $sender_nick . '@' . $sender_host;
 
        $handles = $recip_handle . ';' . $sender_handle;
 
        $fields = array('uid' => $recipient['uid'], 'guid' => $conv_guid, 'creator' => $sender_handle,
-                       'created' => datetime_convert(), 'updated' => datetime_convert(),
-                       'subject' => $subject, 'recips' => $handles);
-       $r = dba::insert('conv', $fields);
+               'created' => datetime_convert(), 'updated' => datetime_convert(),
+               'subject' => $subject, 'recips' => $handles);
+       dba::insert('conv', $fields);
 
        $r = dba::select('conv', array('id'), array('guid' => $conv_guid, 'uid' => $recipient['uid']), array('limit' => 1));
        if (!DBM::is_result($r)) {
@@ -199,7 +196,7 @@ function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
 
        $convid = $r['id'];
 
-       $r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
+       q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
                `contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`, `unknown`)
                VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s', %d )",
                intval($recipient['uid']),
@@ -221,5 +218,4 @@ function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
        );
 
        return 0;
-
 }
index be5519d5c6d68de20da80c827247374d87682e9f..561c7aa9489a6305009f250bf23f6e38d525e6e3 100644 (file)
@@ -232,8 +232,6 @@ function z_fetch_url($url, $binary = false, &$redirects = 0, $opts = array())
        $a->set_curl_code($http_code);
        $a->set_curl_content_type($curl_info['content_type']);
 
-       $body = substr($s, strlen($header));
-
        $rc = intval($http_code);
        $ret['return_code'] = $rc;
        $ret['success'] = (($rc >= 200 && $rc <= 299) ? true : false);
@@ -615,24 +613,37 @@ function allowed_email($email)
                return false;
        }
 
-       $str_allowed = Config::get('system', 'allowed_email');
-       if (! $str_allowed) {
-               return true;
-       }
+       $str_allowed = Config::get('system', 'allowed_email', '');
+       $allowed = explode(',', $str_allowed);
 
-       $found = false;
+       return allowed_domain($domain, $allowed);
+}
 
-       $fnmatch = function_exists('fnmatch');
-       $allowed = explode(',', $str_allowed);
+/**
+ * Checks for the existence of a domain in a domain list
+ *
+ * If strict is not set, an empty domain list counts as found
+ *
+ * @brief Checks for the existence of a domain in a domain list
+ * @param string $domain
+ * @param array $domain_list
+ * @param bool   $strict
+ * @return boolean
+ */
+function allowed_domain($domain, array $domain_list, $strict = false)
+{
+       $found = false;
 
-       if (count($allowed)) {
-               foreach ($allowed as $a) {
-                       $pat = strtolower(trim($a));
-                       if (($fnmatch && fnmatch($pat, $domain)) || ($pat == $domain)) {
+       if (count($domain_list)) {
+               foreach ($domain_list as $item) {
+                       $pat = strtolower(trim($item));
+                       if (fnmatch($pat, $domain) || ($pat == $domain)) {
                                $found = true;
                                break;
                        }
                }
+       } elseif(!$strict) {
+               $found = true;
        }
        return $found;
 }
@@ -680,8 +691,6 @@ function scale_external_images($srctext, $include_link = true, $scale_replace =
                $include_link = false;
        }
 
-       $a = get_app();
-
        // Picture addresses can contain special characters
        $s = htmlspecialchars_decode($srctext);
 
@@ -855,7 +864,6 @@ function original_url($url, $depth = 1, $fetchbody = false)
 
        $stamp1 = microtime(true);
 
-       $siteinfo = array();
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 1);
@@ -864,7 +872,7 @@ function original_url($url, $depth = 1, $fetchbody = false)
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
 
-       $header = curl_exec($ch);
+       curl_exec($ch);
        $curl_info = @curl_getinfo($ch);
        $http_code = $curl_info['http_code'];
        curl_close($ch);
@@ -936,7 +944,6 @@ function original_url($url, $depth = 1, $fetchbody = false)
                if (@$attr["http-equiv"] == 'refresh') {
                        $path = $attr["content"];
                        $pathinfo = explode(";", $path);
-                       $content = "";
                        foreach ($pathinfo as $value) {
                                if (substr(strtolower($value), 0, 4) == "url=") {
                                        return(original_url(substr($value, 4), ++$depth));
@@ -945,7 +952,7 @@ function original_url($url, $depth = 1, $fetchbody = false)
                }
        }
 
-       return($url);
+       return $url;
 }
 
 function short_link($url)
index 39dcc9ecdbd7d888cdc6c601bde0acc3570a4dd9..86acad6cfe730209cce2c3070ac4bb02c526ac69 100644 (file)
@@ -3,9 +3,9 @@
  * @file include/plaintext.php
  */
 use Friendica\App;
-use Friendica\ParseUrl;
 use Friendica\Core\PConfig;
 use Friendica\Object\Image;
+use Friendica\Util\ParseUrl;
 
 require_once "include/bbcode.php";
 require_once "include/html2plain.php";
@@ -292,30 +292,38 @@ function get_attached_data($body, $item = array()) {
        return $post;
 }
 
-function shortenmsg($msg, $limit, $twitter = false) {
-       /// @TODO
-       /// For Twitter URLs aren't shortened, but they have to be calculated as if.
-
+/**
+ * Shortens message
+ *
+ * @param type $msg
+ * @param type $limit
+ * @return type
+ *
+ * @todo For Twitter URLs aren't shortened, but they have to be calculated as if.
+ */
+function shortenmsg($msg, $limit)
+{
        $lines = explode("\n", $msg);
        $msg = "";
        $recycle = html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8');
        $ellipsis = html_entity_decode("&#x2026;", ENT_QUOTES, 'UTF-8');
-       foreach ($lines AS $row=>$line) {
-               if (iconv_strlen(trim($msg."\n".$line), "UTF-8") <= $limit)
-                       $msg = trim($msg."\n".$line);
-               // Is the new message empty by now or is it a reshared message?
-               elseif (($msg == "") || (($row == 1) && (substr($msg, 0, 4) == $recycle)))
-                       $msg = iconv_substr(iconv_substr(trim($msg."\n".$line), 0, $limit, "UTF-8"), 0, -3, "UTF-8").$ellipsis;
-               else
+       foreach ($lines AS $row => $line) {
+               if (iconv_strlen(trim($msg . "\n" . $line), "UTF-8") <= $limit) {
+                       $msg = trim($msg . "\n" . $line);
+               } elseif (($msg == "") || (($row == 1) && (substr($msg, 0, 4) == $recycle))) {
+                       // Is the new message empty by now or is it a reshared message?
+                       $msg = iconv_substr(iconv_substr(trim($msg . "\n" . $line), 0, $limit, "UTF-8"), 0, -3, "UTF-8") . $ellipsis;
+               } else {
                        break;
+               }
        }
-       return($msg);
+
+       return $msg;
 }
 
 /**
  * @brief Convert a message into plaintext for connectors to other networks
  *
- * @param App $a The application class
  * @param array $b The message array that is about to be posted
  * @param int $limit The maximum number of characters when posting to that network
  * @param bool $includedlinks Has an attached link to be included into the message?
@@ -324,7 +332,7 @@ function shortenmsg($msg, $limit, $twitter = false) {
  *
  * @return string The converted message
  */
-function plaintext(App $a, $b, $limit = 0, $includedlinks = false, $htmlmode = 2, $target_network = "") {
+function plaintext($b, $limit = 0, $includedlinks = false, $htmlmode = 2, $target_network = "") {
 
        // Remove the hash tags
        $URLSearchString = "^\[\]";
index 276c36bd2181746d1c76ce5120e434a674ad8c19..34f8c13716b44e65495b939da40b8761a920dba1 100644 (file)
@@ -182,14 +182,15 @@ function load_hooks() {
  * @param string $name of the hook to call
  * @param string|array &$data to transmit to the callback handler
  */
-function call_hooks($name, &$data = null) {
-       $stamp1 = microtime(true);
-
+function call_hooks($name, &$data = null)
+{
        $a = get_app();
 
-       if (is_array($a->hooks) && array_key_exists($name, $a->hooks))
-               foreach ($a->hooks[$name] as $hook)
+       if (is_array($a->hooks) && array_key_exists($name, $a->hooks)) {
+               foreach ($a->hooks[$name] as $hook) {
                        call_single_hook($a, $name, $hook, $data);
+               }
+       }
 }
 
 /**
index 0d223709e2d506acdc743752d727510837cdd622..fd72d888e5b6604a31596380fc2f8428b103e50e 100644 (file)
@@ -144,7 +144,7 @@ function post_update_1194() {
 
        logger("Progress: Start: ".$start_id." position: ".$pos_id." end: ".$end_id, LOGGER_DEBUG);
 
-       $r = q("UPDATE `item` ".$query2." SET `item`.`global` = 1 ".$query3,
+       q("UPDATE `item` ".$query2." SET `item`.`global` = 1 ".$query3,
                intval($start_id), intval($pos_id),
                dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS));
 
index af6c0d96c4f6373b109f2f382da601b38771ef06..9e9dee0253facce2630bae59a36fbec672a6557e 100644 (file)
@@ -16,7 +16,7 @@ function gender_selector($current="",$suffix="") {
        }
        $o .= '</select>';
        return $o;
-}      
+}
 
 function sexpref_selector($current="",$suffix="") {
        $o = '';
@@ -34,16 +34,17 @@ function sexpref_selector($current="",$suffix="") {
        }
        $o .= '</select>';
        return $o;
-}      
+}
 
 
-function marital_selector($current="",$suffix="") {
+function marital_selector($current = "")
+{
        $o = '';
-       $select = array('', t('Single'), t('Lonely'), t('Available'), t('Unavailable'), t('Has crush'), t('Infatuated'), t('Dating'), t('Unfaithful'), t('Sex Addict'), t('Friends'), t('Friends/Benefits'), t('Casual'), t('Engaged'), t('Married'), t('Imaginarily married'), t('Partners'), t('Cohabiting'), t('Common law'), t('Happy'), t('Not looking'), t('Swinger'), t('Betrayed'), t('Separated'), t('Unstable'), t('Divorced'), t('Imaginarily divorced'), t('Widowed'), t('Uncertain'), t('It\'s complicated'), t('Don\'t care'), t('Ask me') );
+       $select = array('', t('Single'), t('Lonely'), t('Available'), t('Unavailable'), t('Has crush'), t('Infatuated'), t('Dating'), t('Unfaithful'), t('Sex Addict'), t('Friends'), t('Friends/Benefits'), t('Casual'), t('Engaged'), t('Married'), t('Imaginarily married'), t('Partners'), t('Cohabiting'), t('Common law'), t('Happy'), t('Not looking'), t('Swinger'), t('Betrayed'), t('Separated'), t('Unstable'), t('Divorced'), t('Imaginarily divorced'), t('Widowed'), t('Uncertain'), t('It\'s complicated'), t('Don\'t care'), t('Ask me'));
 
        call_hooks('marital_selector', $select);
 
-       $o .= "<select name=\"marital\" id=\"marital-select\" size=\"1\" >";
+       $o .= '<select name="marital" id="marital-select" size="1" >';
        foreach ($select as $selection) {
                if ($selection !== 'NOTRANSLATION') {
                        $selected = (($selection == $current) ? ' selected="selected" ' : '');
@@ -52,4 +53,4 @@ function marital_selector($current="",$suffix="") {
        }
        $o .= '</select>';
        return $o;
-}      
+}
index c4ab229aee3cd10444b1de60431c807721381224..a9e0522011c1d5b41fe3ccfd00a0f2493c9f8312 100644 (file)
@@ -24,8 +24,6 @@ function remove_queue_item($id) {
  * @return bool The communication with this contact has currently problems
  */
 function was_recently_delayed($cid) {
-       $was_delayed = false;
-
        // Are there queue entries that were recently added?
        $r = q("SELECT `id` FROM `queue` WHERE `cid` = %d
                AND `last` > UTC_TIMESTAMP() - INTERVAL 15 MINUTE LIMIT 1",
@@ -59,7 +57,7 @@ function add_to_queue($cid,$network,$msg,$batch = false) {
                $batch_queue = 1000;
        }
 
-       $r = q("SELECT COUNT(*) AS `total` FROM `queue` INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id` 
+       $r = q("SELECT COUNT(*) AS `total` FROM `queue` INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id`
                WHERE `queue`.`cid` = %d AND `contact`.`self` = 0 ",
                intval($cid)
        );
index 060d0e9bf30deadf86fbed96d49ba2eb61ca5a4e..dac03f92c7e1153b5dc6dfda97e337cb2ea639c5 100644 (file)
@@ -4,18 +4,18 @@ use Friendica\App;
 use Friendica\Core\System;
 use Friendica\Database\DBM;
 
-function auto_redir(App $a, $contact_nick) {
-
+function auto_redir(App $a, $contact_nick)
+{
        // prevent looping
-
-       if (x($_REQUEST,'redir') && intval($_REQUEST['redir']))
+       if (x($_REQUEST,'redir') && intval($_REQUEST['redir'])) {
                return;
+       }
 
-       if ((! $contact_nick) || ($contact_nick === $a->user['nickname']))
+       if ((! $contact_nick) || ($contact_nick === $a->user['nickname'])) {
                return;
+       }
 
        if (local_user()) {
-
                // We need to find out if $contact_nick is a user on this hub, and if so, if I
                // am a contact of that user. However, that user may have other contacts with the
                // same nickname as me on other hubs or other networks. Exclude these by requiring
@@ -26,8 +26,9 @@ function auto_redir(App $a, $contact_nick) {
 
                $baseurl = System::baseUrl();
                $domain_st = strpos($baseurl, "://");
-               if ($domain_st === false)
+               if ($domain_st === false) {
                        return;
+               }
                $baseurl = substr($baseurl, $domain_st + 3);
                $nurl = normalise_link($baseurl);
 
@@ -39,7 +40,6 @@ function auto_redir(App $a, $contact_nick) {
                                dbesc($baseurl),
                                dbesc($nurl)
                );
-
                if ((! DBM::is_result($r)) || $r[0]['id'] == remote_user()) {
                        return;
                }
@@ -51,14 +51,13 @@ function auto_redir(App $a, $contact_nick) {
                       intval(local_user()),
                       dbesc($baseurl)
                );
-
                if (! DBM::is_result($r)) {
                        return;
                }
 
                $cid = $r[0]['id'];
 
-               $dfrn_id = $orig_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']);
+               $dfrn_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']);
 
                if ($r[0]['duplex'] && $r[0]['issued-id']) {
                        $orig_id = $r[0]['issued-id'];
@@ -72,8 +71,9 @@ function auto_redir(App $a, $contact_nick) {
                // ensure that we've got a valid ID. There may be some edge cases with forums and non-duplex mode
                // that may have triggered some of the "went to {profile/intro} and got an RSS feed" issues
 
-               if (strlen($dfrn_id) < 3)
+               if (strlen($dfrn_id) < 3) {
                        return;
+               }
 
                $sec = random_string();
 
index c443586c252a48fa946a6623ee28b5a9f0daa730..3cdfb4f28d83ab6921d6f3f152def8b886cacbf3 100644 (file)
@@ -165,7 +165,7 @@ function authenticate_success($user_record, $login_initial = false, $interactive
        }
 }
 
-function can_write_wall(App $a, $owner)
+function can_write_wall($owner)
 {
        static $verified = 0;
 
@@ -174,8 +174,7 @@ function can_write_wall(App $a, $owner)
        }
 
        $uid = local_user();
-
-       if (($uid) && ($uid == $owner)) {
+       if ($uid == $owner) {
                return true;
        }
 
index 66df498fe076d11d54bf86783d547c5aeaccb5db..b1619e90f5faa83fda5d18766ca050c436a08988 100644 (file)
@@ -9,7 +9,7 @@ use Friendica\Database\DBM;
 $session_exists = 0;
 $session_expire = 180000;
 
-function ref_session_open($s, $n)
+function ref_session_open()
 {
        return true;
 }
@@ -109,7 +109,7 @@ function ref_session_destroy($id)
        return true;
 }
 
-function ref_session_gc($expire)
+function ref_session_gc()
 {
        dba::delete('session', array("`expire` < ?", time()));
        return true;
index 584ed30e5b09a8239d74d5443c84aec4f2e1c7a9..50fe1e49096b5c0687eedd703f510a13c9e0666f 100644 (file)
@@ -97,7 +97,7 @@ function create_tags_from_item($itemid)
                        $global = (count($isglobal) > 0);
                }
 
-               $r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`, `guid`, `created`, `received`, `global`)
+               q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`, `guid`, `created`, `received`, `global`)
                                VALUES (%d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', %d)",
                        intval($message['uid']), intval($itemid), intval(TERM_OBJ_POST), intval($type), dbesc($term),
                        dbesc($link), dbesc($message['guid']), dbesc($message['created']), dbesc($message['received']), intval($global));
index 5a24c68ed3b1fe562dae509c4d62a8072135d7d7..0b763d687c69294752cbc64ade24f198748fc932 100644 (file)
@@ -1003,7 +1003,6 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
        $redir = false;
 
        if ($redirect) {
-               $a = get_app();
                $redirect_url = 'redir/' . $contact['id'];
                if (local_user() && ($contact['uid'] == local_user()) && ($contact['network'] === NETWORK_DFRN)) {
                        $redir = true;
@@ -1041,8 +1040,6 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
  * @param boolean $savedsearch show save search button
  */
 function search($s, $id = 'search-box', $url = 'search', $save = false, $aside = true) {
-       $a = get_app();
-
        $values = array(
                        '$s' => htmlspecialchars($s),
                        '$id' => $id,
@@ -1471,9 +1468,8 @@ function prepare_text($text) {
  *       ]
  *  ]
  */
-function get_cats_and_terms($item) {
-
-       $a = get_app();
+function get_cats_and_terms($item)
+{
        $categories = array();
        $folders = array();
 
@@ -1901,9 +1897,10 @@ function file_tag_update_pconfig($uid, $file_old, $file_new, $type = 'file') {
 function file_tag_save_file($uid, $item, $file) {
        require_once "include/files.php";
 
-       $result = false;
-       if (! intval($uid))
+       if (! intval($uid)) {
                return false;
+       }
+
        $r = q("SELECT `file` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
                intval($item),
                intval($uid)
@@ -1931,9 +1928,9 @@ function file_tag_save_file($uid, $item, $file) {
 function file_tag_unsave_file($uid, $item, $file, $cat = false) {
        require_once "include/files.php";
 
-       $result = false;
-       if (! intval($uid))
+       if (! intval($uid)) {
                return false;
+       }
 
        if ($cat == true) {
                $pattern = '<' . file_tag_encode($file) . '>' ;
@@ -1943,7 +1940,6 @@ function file_tag_unsave_file($uid, $item, $file, $cat = false) {
                $termtype = TERM_FILE;
        }
 
-
        $r = q("SELECT `file` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
                intval($item),
                intval($uid)
@@ -1964,8 +1960,8 @@ function file_tag_unsave_file($uid, $item, $file, $cat = false) {
                dbesc($file),
                intval(TERM_OBJ_POST),
                intval($termtype),
-               intval($uid));
-
+               intval($uid)
+       );
        if (!DBM::is_result($r)) {
                $saved = PConfig::get($uid, 'system', 'filetags');
                PConfig::set($uid, 'system', 'filetags', str_replace($pattern, '', $saved));
index d8e2226a795470dea2a55805bb16bc1fb89d52a3..306ef91e0b1422f2dbab4dde4d7376f81b20ccd5 100644 (file)
@@ -908,6 +908,8 @@ function admin_page_site_post(App $a)
 
        $allowed_sites          =       ((x($_POST,'allowed_sites'))            ? notags(trim($_POST['allowed_sites']))         : '');
        $allowed_email          =       ((x($_POST,'allowed_email'))            ? notags(trim($_POST['allowed_email']))         : '');
+       $no_oembed_rich_content = x($_POST,'no_oembed_rich_content');
+       $allowed_oembed         =       ((x($_POST,'allowed_embed'))            ? notags(trim($_POST['allowed_embed']))         : '');
        $block_public           =       ((x($_POST,'block_public'))             ? True                                          : False);
        $force_publish          =       ((x($_POST,'publish_all'))              ? True                                          : False);
        $global_directory       =       ((x($_POST,'directory'))                ? notags(trim($_POST['directory']))             : '');
@@ -1064,6 +1066,8 @@ function admin_page_site_post(App $a)
        Config::set('config', 'register_text', $register_text);
        Config::set('system', 'allowed_sites', $allowed_sites);
        Config::set('system', 'allowed_email', $allowed_email);
+       Config::set('system', 'no_oembed_rich_content', $no_oembed_rich_content);
+       Config::set('system', 'allowed_oembed', $allowed_oembed);
        Config::set('system', 'block_public', $block_public);
        Config::set('system', 'publish_all', $force_publish);
        Config::set('system', 'newuser_private', $newuser_private);
@@ -1302,6 +1306,8 @@ function admin_page_site(App $a)
                '$abandon_days'         => array('abandon_days', t('Accounts abandoned after x days'), Config::get('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
                '$allowed_sites'        => array('allowed_sites', t("Allowed friend domains"), Config::get('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
                '$allowed_email'        => array('allowed_email', t("Allowed email domains"), Config::get('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),
+               '$no_oembed_rich_content' => array('no_oembed_rich_content', t("No OEmbed rich content"), Config::get('system','no_oembed_rich_content'), t("Don't show the rich content (e.g. embedded PDF), except from the domains listed below.")),
+               '$allowed_oembed'       => array('allowed_oembed', t("Allowed OEmbed domains"), Config::get('system','allowed_oembed'), t("Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted.")),
                '$block_public'         => array('block_public', t("Block public"), Config::get('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.")),
                '$force_publish'        => array('publish_all', t("Force publish"), Config::get('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")),
                '$global_directory'     => array('directory', t("Global directory URL"), Config::get('system','directory'), t("URL to the global directory. If this is not set, the global directory is completely unavailable to the application.")),
index 4696ed6580e4ba0524fa5681d7bc8f37c4268c7b..2e0d449711eb569cf6c832a06f9b394197f66608 100644 (file)
@@ -37,7 +37,6 @@ function bookmarklet_content(App $a)
                        'bang' => '',
                        'visitor' => 'block',
                        'profile_uid' => local_user(),
-                       'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
                        'title' => trim($_REQUEST["title"], "*"),
                        'content' => $content
                );
index 2d91d2d1aed782d8036373ee7292e5bb497eb2bf..755c8b922e526f8f69b35150650a6db3d75ce64f 100644 (file)
@@ -313,9 +313,8 @@ function display_content(App $a, $update = false, $update_uid = 0) {
                        'bang' => '',
                        'visitor' => 'block',
                        'profile_uid' => local_user(),
-                       'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
                );
-               $o .= status_editor($a,$x,0,true);
+               $o .= status_editor($a, $x, 0, true);
        }
 
        $sql_extra = item_permissions_sql($a->profile['uid'], $remote_contact, $groups);
index eb804b5d66c61c98dd0e80380a21e43c130b50ad..0608e8679be8987606666b7d7e03aff5ab9c3adf 100644 (file)
@@ -475,11 +475,6 @@ function events_content(App $a) {
                $fhour   = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'H') : 0);
                $fminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'i') : 0);
 
-               $f = Config::get('system','event_input_format');
-               if (! $f) {
-                       $f = 'ymd';
-               }
-
                require_once 'include/acl_selectors.php' ;
 
                $perms = get_acl_permissions($orig_event);
@@ -511,11 +506,11 @@ function events_content(App $a) {
                        '$title' => t('Event details'),
                        '$desc' => t('Starting date and Title are required.'),
                        '$s_text' => t('Event Starts:') . ' <span class="required" title="' . t('Required') . '">*</span>',
-                       '$s_dsel' => datetimesel($f, new DateTime(), DateTime::createFromFormat('Y', $syear+5), DateTime::createFromFormat('Y-m-d H:i', "$syear-$smonth-$sday $shour:$sminute"), t('Event Starts:'), 'start_text', true, true, '', '', true),
+                       '$s_dsel' => datetimesel(new DateTime(), DateTime::createFromFormat('Y', $syear+5), DateTime::createFromFormat('Y-m-d H:i', "$syear-$smonth-$sday $shour:$sminute"), t('Event Starts:'), 'start_text', true, true, '', '', true),
                        '$n_text' => t('Finish date/time is not known or not relevant'),
                        '$n_checked' => $n_checked,
                        '$f_text' => t('Event Finishes:'),
-                       '$f_dsel' => datetimesel($f, new DateTime(), DateTime::createFromFormat('Y', $fyear+5), DateTime::createFromFormat('Y-m-d H:i', "$fyear-$fmonth-$fday $fhour:$fminute"), t('Event Finishes:'), 'finish_text', true, true, 'start_text'),
+                       '$f_dsel' => datetimesel(new DateTime(), DateTime::createFromFormat('Y', $fyear+5), DateTime::createFromFormat('Y-m-d H:i', "$fyear-$fmonth-$fday $fhour:$fminute"), t('Event Finishes:'), 'finish_text', true, true, 'start_text'),
                        '$a_text' => t('Adjust for viewer timezone'),
                        '$a_checked' => $a_checked,
                        '$d_text' => t('Description:'),
index 450aac5f2e132602188ad250a662e13a7cdb2225..16c3ce442a6851b2d9005b8a18130f8276fd2986 100644 (file)
@@ -215,7 +215,7 @@ function item_post(App $a) {
         * Now check that it is a page_type of PAGE_BLOG, and that valid personal details
         * have been provided, and run any anti-spam plugins
         */
-       if (!(can_write_wall($a, $profile_uid) || $allow_comment) && !$allow_moderated) {
+       if (!(can_write_wall($profile_uid) || $allow_comment) && !$allow_moderated) {
                notice(t('Permission denied.') . EOL) ;
                if (x($_REQUEST, 'return')) {
                        goaway($return_path);
index 65b15cb03a5506f309b117b172649d8f614dd16e..f54ee06f0421459b77f1613b7844d77df85d8d94 100644 (file)
@@ -454,11 +454,10 @@ function networkFlatView(App $a, $update = 0) {
                        'bang'  => '',
                        'visitor' => 'block',
                        'profile_uid' => local_user(),
-                       'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
                        'content' => '',
                );
 
-               $o .= status_editor($a,$x);
+               $o .= status_editor($a, $x);
 
                if (!Config::get('theme','hide_eventlist')) {
                        $o .= get_birthdays();
@@ -605,12 +604,10 @@ function networkThreadedView(App $a, $update = 0) {
                        'bang'  => (($group || $cid || $nets) ? '!' : ''),
                        'visitor' => 'block',
                        'profile_uid' => local_user(),
-                       'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
                        'content' => $content,
                );
 
-               $o .= status_editor($a,$x);
-
+               $o .= status_editor($a, $x);
        }
 
        // We don't have to deal with ACLs on this page. You're looking at everything
index 4fe9256349fe9a863509984d77995fd13c7e7945..4fabba6c7e7c001e65b06cf783e9c05c0cd30641 100644 (file)
@@ -11,7 +11,7 @@
 */
 
 use Friendica\App;
-use Friendica\ParseUrl;
+use Friendica\Util\ParseUrl;
 
 require_once("include/items.php");
 
index 3298e284a7cb9f6777bb6eece08d4e27887ca93f..ab0ad75013c24f03678dc2e63730f2725b1cd48a 100644 (file)
@@ -1134,7 +1134,6 @@ function photos_content(App $a)
                        '$uploadurl' => $ret['post_url'],
 
                        // ACL permissions box
-                       '$acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
                        '$group_perms' => t('Show to Groups'),
                        '$contact_perms' => t('Show to Contacts'),
                        '$return_path' => $a->query_string,
@@ -1482,7 +1481,6 @@ function photos_content(App $a)
                                '$delete' => t('Delete Photo'),
 
                                // ACL permissions box
-                               '$acl_data' => construct_acl_data($a, $ph[0]), // For non-Javascript ACL selector
                                '$group_perms' => t('Show to Groups'),
                                '$contact_perms' => t('Show to Contacts'),
                                '$return_path' => $a->query_string,
@@ -1501,7 +1499,7 @@ function photos_content(App $a)
                        $tpl = get_markup_template('photo_item.tpl');
                        $return_url = $a->cmd;
 
-                       if ($can_post || can_write_wall($a, $owner_uid)) {
+                       if ($can_post || can_write_wall($owner_uid)) {
                                $like_tpl = get_markup_template('like_noshare.tpl');
                                $likebuttons = replace_macros($like_tpl, array(
                                        '$id' => $link_item['id'],
@@ -1513,7 +1511,7 @@ function photos_content(App $a)
                        }
 
                        if (!DBM::is_result($r)) {
-                               if (($can_post || can_write_wall($a, $owner_uid)) && $link_item['last-child']) {
+                               if (($can_post || can_write_wall($owner_uid)) && $link_item['last-child']) {
                                        $comments .= replace_macros($cmnt_tpl, array(
                                                '$return_path' => '',
                                                '$jsreload' => $return_url,
@@ -1552,7 +1550,7 @@ function photos_content(App $a)
                                        $dislike = format_like($conv_responses['dislike'][$link_item['uri']], $conv_responses['dislike'][$link_item['uri'] . '-l'], 'dislike', $link_item['id']);
                                }
 
-                               if (($can_post || can_write_wall($a, $owner_uid)) && $link_item['last-child']) {
+                               if (($can_post || can_write_wall($owner_uid)) && $link_item['last-child']) {
                                        $comments .= replace_macros($cmnt_tpl,array(
                                                '$return_path' => '',
                                                '$jsreload' => $return_url,
@@ -1625,7 +1623,7 @@ function photos_content(App $a)
                                                '$comment' => $comment
                                        ));
 
-                                       if (($can_post || can_write_wall($a, $owner_uid)) && $item['last-child']) {
+                                       if (($can_post || can_write_wall($owner_uid)) && $item['last-child']) {
                                                $comments .= replace_macros($cmnt_tpl, array(
                                                        '$return_path' => '',
                                                        '$jsreload' => $return_url,
index f439f754c0746a362874a38b14638dd0c74f0262..ce2c5348d92dfae3c88347619de246153a9cb336 100644 (file)
@@ -194,7 +194,7 @@ function profile_content(App $a, $update = 0)
                $a->page['aside'] .= categories_widget(System::baseUrl(true) . '/profile/' . $a->profile['nickname'], (x($category) ? xmlify($category) : ''));
                $a->page['aside'] .= tagcloud_wall_widget();
 
-               if (can_write_wall($a, $a->profile['profile_uid'])) {
+               if (can_write_wall($a->profile['profile_uid'])) {
                        $x = array(
                                'is_owner' => $is_owner,
                                'allow_location' => ($is_owner || $commvisitor) && $a->profile['allow_location'],
@@ -210,7 +210,6 @@ function profile_content(App $a, $update = 0)
                                'bang' => '',
                                'visitor' => $is_owner || $commvisitor ? 'block' : 'none',
                                'profile_uid' => $a->profile['profile_uid'],
-                               'acl_data' => $is_owner ? construct_acl_data($a, $a->user) : '', // For non-Javascript ACL selector
                        );
 
                        $o .= status_editor($a, $x);
index 893f0d51e34ba35cdd2e2271a93df29fffb383fc..cc01f74dd884799f7f7423715d0f268259ae4601 100644 (file)
@@ -655,11 +655,6 @@ function profiles_content(App $a) {
 
                $detailled_profile = (PConfig::get(local_user(), 'system', 'detailled_profile') AND $personal_account);
 
-               $f = Config::get('system', 'birthday_input_format');
-               if (! $f) {
-                       $f = 'ymd';
-               }
-
                $is_default = (($r[0]['is-default']) ? 1 : 0);
                $tpl = get_markup_template("profile_edit.tpl");
                $o .= replace_macros($tpl, array(
index f9482289d75c78e6f709c530dfd84f74b51436fa..5a430e39d15b8e1643009deda7d1cca5f46199f1 100644 (file)
@@ -1280,7 +1280,6 @@ function settings_content(App $a) {
                '$blocktags'=> $blocktags, // array('blocktags', t('Allow friends to tag your posts:'), !$blocktags, ''),
 
                // ACL permissions box
-               '$acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
                '$group_perms' => t('Show to Groups'),
                '$contact_perms' => t('Show to Contacts'),
                '$private' => t('Default Private Post'),
index a597b169872feb63a144aa5def4ae12d333ad2ac..9200c335e1b7b457eefe2441629691fc617d15b8 100644 (file)
@@ -32,7 +32,7 @@ function subthread_content(App $a) {
 
        $owner_uid = $item['uid'];
 
-       if(! can_write_wall($a,$owner_uid)) {
+       if(! can_write_wall($owner_uid)) {
                return;
        }
 
index 70be8fd73865b9a04e221eedbc429e566dd238a6..51c987755e1b6f2211d06cfda02ba3be0356e878 100644 (file)
@@ -8,9 +8,9 @@ namespace Friendica\Content;
 \r
 use Friendica\Core\Cache;\r
 use Friendica\Core\System;\r
-use Friendica\ParseUrl;\r
 use Friendica\Core\Config;\r
 use Friendica\Database\DBM;\r
+use Friendica\Util\ParseUrl;\r
 use dba;\r
 use DOMDocument;\r
 use DOMXPath;\r
@@ -193,8 +193,8 @@ class OEmbed
                                break;\r
                        case "rich":\r
                                // not so safe..\r
-                               if (!Config::get("system", "no_oembed_rich_content")) {\r
-                                       $ret.= proxy_parse_html($jhtml);\r
+                               if (self::isAllowedURL($embedurl)) {\r
+                                       $ret .= proxy_parse_html($jhtml);\r
                                }\r
                                break;\r
                }\r
@@ -315,7 +315,10 @@ class OEmbed
                }\r
                $width = '100%';\r
 \r
-               $s = System::baseUrl() . '/oembed/' . base64url_encode($src);\r
+               // Only proxy OEmbed URLs to avoid mixed-content errors\r
+               if (Config::get('system', 'ssl_policy') == SSL_POLICY_FULL && parse_url($src, PHP_URL_SCHEME) !== 'https') {\r
+                       $src = System::baseUrl() . '/oembed/' . base64url_encode($src);\r
+               }\r
                return '<iframe onload="resizeIframe(this);" class="embed_rich" height="' . $height . '" width="' . $width . '" src="' . $s . '" allowfullscreen scrolling="no" frameborder="no">' . t('Embedded content') . '</iframe>';\r
        }\r
 \r
@@ -352,4 +355,25 @@ class OEmbed
                }\r
                return $innerHTML;\r
        }\r
+\r
+       /**\r
+        * Determines if rich content OEmbed is allowed for the provided URL\r
+        *\r
+        * @brief Determines if rich content OEmbed is allowed for the provided URL\r
+        * @param string $url\r
+        * @return boolean\r
+        */\r
+       private static function isAllowedURL($url)\r
+       {\r
+               if (!Config::get('system', 'no_oembed_rich_content')) {\r
+                       return true;\r
+               }\r
+\r
+               $domain = parse_url($url, PHP_URL_HOST);\r
+\r
+               $str_allowed = Config::get('system', 'allowed_oembed', '');\r
+               $allowed = explode(',', $str_allowed);\r
+\r
+               return allowed_domain($domain, $allowed, true);\r
+       }\r
 }\r
index a03bae6e9d1da65f3b052293fb0d1090e86f8d72..534095efbb3a745cb9773bca013c7ee310016d6a 100644 (file)
@@ -60,11 +60,11 @@ class Thread extends BaseObject
                                break;
                        case 'profile':
                                $this->profile_owner = $a->profile['profile_uid'];
-                               $this->writable = can_write_wall($a, $this->profile_owner);
+                               $this->writable = can_write_wall($this->profile_owner);
                                break;
                        case 'display':
                                $this->profile_owner = $a->profile['uid'];
-                               $this->writable = can_write_wall($a, $this->profile_owner) || $writable;
+                               $this->writable = can_write_wall($this->profile_owner) || $writable;
                                break;
                        case 'community':
                                $this->profile_owner = local_user();
diff --git a/src/ParseUrl.php b/src/ParseUrl.php
deleted file mode 100644 (file)
index 0c67589..0000000
+++ /dev/null
@@ -1,512 +0,0 @@
-<?php
-/**
- * @file include/ParseUrl.php
- * @brief Get informations about a given URL
- */
-namespace Friendica;
-
-use Friendica\Content\OEmbed;
-use Friendica\Object\Image;
-use Friendica\Util\XML;
-
-use dba;
-use DOMXPath;
-use DOMDocument;
-
-require_once 'include/dba.php';
-require_once "include/network.php";
-
-/**
- * @brief Class with methods for extracting certain content from an url
- */
-class ParseUrl
-{
-       /**
-        * @brief Search for chached embeddable data of an url otherwise fetch it
-        *
-        * @param string $url         The url of the page which should be scraped
-        * @param bool $no_guessing If true the parse doens't search for
-        *                          preview pictures
-        * @param bool $do_oembed   The false option is used by the function fetch_oembed()
-        *                          to avoid endless loops
-        *
-        * @return array which contains needed data for embedding
-        *    string 'url' => The url of the parsed page
-        *    string 'type' => Content type
-        *    string 'title' => The title of the content
-        *    string 'text' => The description for the content
-        *    string 'image' => A preview image of the content (only available
-        *                if $no_geuessing = false
-        *    array'images' = Array of preview pictures
-        *    string 'keywords' => The tags which belong to the content
-        *
-        * @see ParseUrl::getSiteinfo() for more information about scraping
-        * embeddable content
-        */
-       public static function getSiteinfoCached($url, $no_guessing = false, $do_oembed = true)
-       {
-               if ($url == "") {
-                       return false;
-               }
-
-               $r = q(
-                       "SELECT * FROM `parsed_url` WHERE `url` = '%s' AND `guessing` = %d AND `oembed` = %d",
-                       dbesc(normalise_link($url)),
-                       intval(!$no_guessing),
-                       intval($do_oembed)
-               );
-
-               if ($r) {
-                       $data = $r[0]["content"];
-               }
-
-               if (!is_null($data)) {
-                       $data = unserialize($data);
-                       return $data;
-               }
-
-               $data = self::getSiteinfo($url, $no_guessing, $do_oembed);
-
-               dba::insert(
-                       'parsed_url',
-                       array(
-                               'url' => normalise_link($url), 'guessing' => !$no_guessing,
-                               'oembed' => $do_oembed, 'content' => serialize($data),
-                               'created' => datetime_convert()),
-                       true
-               );
-
-               return $data;
-       }
-       /**
-        * @brief Parse a page for embeddable content information
-        *
-        * This method parses to url for meta data which can be used to embed
-        * the content. If available it prioritizes Open Graph meta tags.
-        * If this is not available it uses the twitter cards meta tags.
-        * As fallback it uses standard html elements with meta informations
-        * like \<title\>Awesome Title\</title\> or
-        * \<meta name="description" content="An awesome description"\>
-        *
-        * @param string $url         The url of the page which should be scraped
-        * @param bool $no_guessing If true the parse doens't search for
-        *                          preview pictures
-        * @param bool $do_oembed   The false option is used by the function fetch_oembed()
-        *                          to avoid endless loops
-        * @param int $count       Internal counter to avoid endless loops
-        *
-        * @return array which contains needed data for embedding
-        *    string 'url' => The url of the parsed page
-        *    string 'type' => Content type
-        *    string 'title' => The title of the content
-        *    string 'text' => The description for the content
-        *    string 'image' => A preview image of the content (only available
-        *                if $no_geuessing = false
-        *    array'images' = Array of preview pictures
-        *    string 'keywords' => The tags which belong to the content
-        *
-        * @todo https://developers.google.com/+/plugins/snippet/
-        * @verbatim
-        * <meta itemprop="name" content="Awesome title">
-        * <meta itemprop="description" content="An awesome description">
-        * <meta itemprop="image" content="http://maple.libertreeproject.org/images/tree-icon.png">
-        *
-        * <body itemscope itemtype="http://schema.org/Product">
-        *   <h1 itemprop="name">Shiny Trinket</h1>
-        *   <img itemprop="image" src="{image-url}" />
-        *   <p itemprop="description">Shiny trinkets are shiny.</p>
-        * </body>
-        * @endverbatim
-        */
-       public static function getSiteinfo($url, $no_guessing = false, $do_oembed = true, $count = 1)
-       {
-               $a = get_app();
-
-               $siteinfo = array();
-
-               // Check if the URL does contain a scheme
-               $scheme = parse_url($url, PHP_URL_SCHEME);
-
-               if ($scheme == "") {
-                       $url = "http://".trim($url, "/");
-               }
-
-               if ($count > 10) {
-                       logger("parseurl_getsiteinfo: Endless loop detected for ".$url, LOGGER_DEBUG);
-                       return($siteinfo);
-               }
-
-               $url = trim($url, "'");
-               $url = trim($url, '"');
-
-               $url = strip_tracking_query_params($url);
-
-               $siteinfo["url"] = $url;
-               $siteinfo["type"] = "link";
-
-               $data = z_fetch_url($url);
-               if (!$data['success']) {
-                       return($siteinfo);
-               }
-
-               // If the file is too large then exit
-               if ($data["info"]["download_content_length"] > 1000000) {
-                       return($siteinfo);
-               }
-
-               // If it isn't a HTML file then exit
-               if (($data["info"]["content_type"] != "") && !strstr(strtolower($data["info"]["content_type"]), "html")) {
-                       return($siteinfo);
-               }
-
-               $header = $data["header"];
-               $body = $data["body"];
-
-               if ($do_oembed) {
-                       $oembed_data = OEmbed::fetchURL($url);
-
-                       if (!in_array($oembed_data->type, array("error", "rich", ""))) {
-                               $siteinfo["type"] = $oembed_data->type;
-                       }
-
-                       if (($oembed_data->type == "link") && ($siteinfo["type"] != "photo")) {
-                               if (isset($oembed_data->title)) {
-                                       $siteinfo["title"] = trim($oembed_data->title);
-                               }
-                               if (isset($oembed_data->description)) {
-                                       $siteinfo["text"] = trim($oembed_data->description);
-                               }
-                               if (isset($oembed_data->thumbnail_url)) {
-                                       $siteinfo["image"] = $oembed_data->thumbnail_url;
-                               }
-                       }
-               }
-
-               // Fetch the first mentioned charset. Can be in body or header
-               $charset = "";
-               if (preg_match('/charset=(.*?)['."'".'"\s\n]/', $header, $matches)) {
-                       $charset = trim(trim(trim(array_pop($matches)), ';,'));
-               }
-
-               if ($charset == "") {
-                       $charset = "utf-8";
-               }
-
-               if (($charset != "") && (strtoupper($charset) != "UTF-8")) {
-                       logger("parseurl_getsiteinfo: detected charset ".$charset, LOGGER_DEBUG);
-                       //$body = mb_convert_encoding($body, "UTF-8", $charset);
-                       $body = iconv($charset, "UTF-8//TRANSLIT", $body);
-               }
-
-               $body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
-
-               $doc = new DOMDocument();
-               @$doc->loadHTML($body);
-
-               XML::deleteNode($doc, "style");
-               XML::deleteNode($doc, "script");
-               XML::deleteNode($doc, "option");
-               XML::deleteNode($doc, "h1");
-               XML::deleteNode($doc, "h2");
-               XML::deleteNode($doc, "h3");
-               XML::deleteNode($doc, "h4");
-               XML::deleteNode($doc, "h5");
-               XML::deleteNode($doc, "h6");
-               XML::deleteNode($doc, "ol");
-               XML::deleteNode($doc, "ul");
-
-               $xpath = new DOMXPath($doc);
-
-               $list = $xpath->query("//meta[@content]");
-               foreach ($list as $node) {
-                       $attr = array();
-                       if ($node->attributes->length) {
-                               foreach ($node->attributes as $attribute) {
-                                       $attr[$attribute->name] = $attribute->value;
-                               }
-                       }
-
-                       if (@$attr["http-equiv"] == "refresh") {
-                               $path = $attr["content"];
-                               $pathinfo = explode(";", $path);
-                               $content = "";
-                               foreach ($pathinfo as $value) {
-                                       if (substr(strtolower($value), 0, 4) == "url=") {
-                                               $content = substr($value, 4);
-                                       }
-                               }
-                               if ($content != "") {
-                                       $siteinfo = self::getSiteinfo($content, $no_guessing, $do_oembed, ++$count);
-                                       return($siteinfo);
-                               }
-                       }
-               }
-
-               $list = $xpath->query("//title");
-               if ($list->length > 0) {
-                       $siteinfo["title"] = trim($list->item(0)->nodeValue);
-               }
-
-               //$list = $xpath->query("head/meta[@name]");
-               $list = $xpath->query("//meta[@name]");
-               foreach ($list as $node) {
-                       $attr = array();
-                       if ($node->attributes->length) {
-                               foreach ($node->attributes as $attribute) {
-                                       $attr[$attribute->name] = $attribute->value;
-                               }
-                       }
-
-                       $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
-
-                       if ($attr["content"] != "") {
-                               switch (strtolower($attr["name"])) {
-                                       case "fulltitle":
-                                               $siteinfo["title"] = trim($attr["content"]);
-                                               break;
-                                       case "description":
-                                               $siteinfo["text"] = trim($attr["content"]);
-                                               break;
-                                       case "thumbnail":
-                                               $siteinfo["image"] = $attr["content"];
-                                               break;
-                                       case "twitter:image":
-                                               $siteinfo["image"] = $attr["content"];
-                                               break;
-                                       case "twitter:image:src":
-                                               $siteinfo["image"] = $attr["content"];
-                                               break;
-                                       case "twitter:card":
-                                               if (($siteinfo["type"] == "") || ($attr["content"] == "photo")) {
-                                                       $siteinfo["type"] = $attr["content"];
-                                               }
-                                               break;
-                                       case "twitter:description":
-                                               $siteinfo["text"] = trim($attr["content"]);
-                                               break;
-                                       case "twitter:title":
-                                               $siteinfo["title"] = trim($attr["content"]);
-                                               break;
-                                       case "dc.title":
-                                               $siteinfo["title"] = trim($attr["content"]);
-                                               break;
-                                       case "dc.description":
-                                               $siteinfo["text"] = trim($attr["content"]);
-                                               break;
-                                       case "keywords":
-                                               $keywords = explode(",", $attr["content"]);
-                                               break;
-                                       case "news_keywords":
-                                               $keywords = explode(",", $attr["content"]);
-                                               break;
-                               }
-                       }
-                       if ($siteinfo["type"] == "summary") {
-                               $siteinfo["type"] = "link";
-                       }
-               }
-
-               if (isset($keywords)) {
-                       $siteinfo["keywords"] = array();
-                       foreach ($keywords as $keyword) {
-                               if (!in_array(trim($keyword), $siteinfo["keywords"])) {
-                                       $siteinfo["keywords"][] = trim($keyword);
-                               }
-                       }
-               }
-
-               //$list = $xpath->query("head/meta[@property]");
-               $list = $xpath->query("//meta[@property]");
-               foreach ($list as $node) {
-                       $attr = array();
-                       if ($node->attributes->length) {
-                               foreach ($node->attributes as $attribute) {
-                                       $attr[$attribute->name] = $attribute->value;
-                               }
-                       }
-
-                       $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
-
-                       if ($attr["content"] != "") {
-                               switch (strtolower($attr["property"])) {
-                                       case "og:image":
-                                               $siteinfo["image"] = $attr["content"];
-                                               break;
-                                       case "og:title":
-                                               $siteinfo["title"] = trim($attr["content"]);
-                                               break;
-                                       case "og:description":
-                                               $siteinfo["text"] = trim($attr["content"]);
-                                               break;
-                               }
-                       }
-               }
-
-               if ((@$siteinfo["image"] == "") && !$no_guessing) {
-                       $list = $xpath->query("//img[@src]");
-                       foreach ($list as $node) {
-                               $attr = array();
-                               if ($node->attributes->length) {
-                                       foreach ($node->attributes as $attribute) {
-                                               $attr[$attribute->name] = $attribute->value;
-                                       }
-                               }
-
-                               $src = self::completeUrl($attr["src"], $url);
-                               $photodata = Image::getInfoFromURL($src);
-
-                               if (($photodata) && ($photodata[0] > 150) && ($photodata[1] > 150)) {
-                                       if ($photodata[0] > 300) {
-                                               $photodata[1] = round($photodata[1] * (300 / $photodata[0]));
-                                               $photodata[0] = 300;
-                                       }
-                                       if ($photodata[1] > 300) {
-                                               $photodata[0] = round($photodata[0] * (300 / $photodata[1]));
-                                               $photodata[1] = 300;
-                                       }
-                                       $siteinfo["images"][] = array("src" => $src,
-                                                                       "width" => $photodata[0],
-                                                                       "height" => $photodata[1]);
-                               }
-                       }
-               } elseif ($siteinfo["image"] != "") {
-                       $src = self::completeUrl($siteinfo["image"], $url);
-
-                       unset($siteinfo["image"]);
-
-                       $photodata = Image::getInfoFromURL($src);
-
-                       if (($photodata) && ($photodata[0] > 10) && ($photodata[1] > 10)) {
-                               $siteinfo["images"][] = array("src" => $src,
-                                                               "width" => $photodata[0],
-                                                               "height" => $photodata[1]);
-                       }
-               }
-
-               if ((@$siteinfo["text"] == "") && (@$siteinfo["title"] != "") && !$no_guessing) {
-                       $text = "";
-
-                       $list = $xpath->query("//div[@class='article']");
-                       foreach ($list as $node) {
-                               if (strlen($node->nodeValue) > 40) {
-                                       $text .= " ".trim($node->nodeValue);
-                               }
-                       }
-
-                       if ($text == "") {
-                               $list = $xpath->query("//div[@class='content']");
-                               foreach ($list as $node) {
-                                       if (strlen($node->nodeValue) > 40) {
-                                               $text .= " ".trim($node->nodeValue);
-                                       }
-                               }
-                       }
-
-                       // If none text was found then take the paragraph content
-                       if ($text == "") {
-                               $list = $xpath->query("//p");
-                               foreach ($list as $node) {
-                                       if (strlen($node->nodeValue) > 40) {
-                                               $text .= " ".trim($node->nodeValue);
-                                       }
-                               }
-                       }
-
-                       if ($text != "") {
-                               $text = trim(str_replace(array("\n", "\r"), array(" ", " "), $text));
-
-                               while (strpos($text, "  ")) {
-                                       $text = trim(str_replace("  ", " ", $text));
-                               }
-
-                               $siteinfo["text"] = trim(html_entity_decode(substr($text, 0, 350), ENT_QUOTES, "UTF-8").'...');
-                       }
-               }
-
-               logger("parseurl_getsiteinfo: Siteinfo for ".$url." ".print_r($siteinfo, true), LOGGER_DEBUG);
-
-               call_hooks("getsiteinfo", $siteinfo);
-
-               return($siteinfo);
-       }
-
-       /**
-        * @brief Convert tags from CSV to an array
-        *
-        * @param string $string Tags
-        * @return array with formatted Hashtags
-        */
-       public static function convertTagsToArray($string)
-       {
-               $arr_tags = str_getcsv($string);
-               if (count($arr_tags)) {
-                       // add the # sign to every tag
-                       array_walk($arr_tags, array("self", "arrAddHashes"));
-
-                       return $arr_tags;
-               }
-       }
-
-       /**
-        * @brief Add a hasht sign to a string
-        *
-        *  This method is used as callback function
-        *
-        * @param string $tag The pure tag name
-        * @param int    $k   Counter for internal use
-        * @return void
-        */
-       private static function arrAddHashes(&$tag, $k)
-       {
-               $tag = "#" . $tag;
-       }
-
-       /**
-        * @brief Add a scheme to an url
-        *
-        * The src attribute of some html elements (e.g. images)
-        * can miss the scheme so we need to add the correct
-        * scheme
-        *
-        * @param string $url    The url which possibly does have
-        *                       a missing scheme (a link to an image)
-        * @param string $scheme The url with a correct scheme
-        *                       (e.g. the url from the webpage which does contain the image)
-        *
-        * @return string The url with a scheme
-        */
-       private static function completeUrl($url, $scheme)
-       {
-               $urlarr = parse_url($url);
-
-               // If the url does allready have an scheme
-               // we can stop the process here
-               if (isset($urlarr["scheme"])) {
-                       return($url);
-               }
-
-               $schemearr = parse_url($scheme);
-
-               $complete = $schemearr["scheme"]."://".$schemearr["host"];
-
-               if (@$schemearr["port"] != "") {
-                       $complete .= ":".$schemearr["port"];
-               }
-
-               if (strpos($urlarr["path"], "/") !== 0) {
-                       $complete .= "/";
-               }
-
-               $complete .= $urlarr["path"];
-
-               if (@$urlarr["query"] != "") {
-                       $complete .= "?".$urlarr["query"];
-               }
-
-               if (@$urlarr["fragment"] != "") {
-                       $complete .= "#".$urlarr["fragment"];
-               }
-
-               return($complete);
-       }
-}
diff --git a/src/Util/ParseUrl.php b/src/Util/ParseUrl.php
new file mode 100644 (file)
index 0000000..7154e0f
--- /dev/null
@@ -0,0 +1,512 @@
+<?php
+/**
+ * @file src/Util/ParseUrl.php
+ * @brief Get informations about a given URL
+ */
+namespace Friendica\Util;
+
+use Friendica\Content\OEmbed;
+use Friendica\Object\Image;
+use Friendica\Util\XML;
+
+use dba;
+use DOMXPath;
+use DOMDocument;
+
+require_once 'include/dba.php';
+require_once "include/network.php";
+
+/**
+ * @brief Class with methods for extracting certain content from an url
+ */
+class ParseUrl
+{
+       /**
+        * @brief Search for chached embeddable data of an url otherwise fetch it
+        *
+        * @param string $url         The url of the page which should be scraped
+        * @param bool $no_guessing If true the parse doens't search for
+        *                          preview pictures
+        * @param bool $do_oembed   The false option is used by the function fetch_oembed()
+        *                          to avoid endless loops
+        *
+        * @return array which contains needed data for embedding
+        *    string 'url' => The url of the parsed page
+        *    string 'type' => Content type
+        *    string 'title' => The title of the content
+        *    string 'text' => The description for the content
+        *    string 'image' => A preview image of the content (only available
+        *                if $no_geuessing = false
+        *    array'images' = Array of preview pictures
+        *    string 'keywords' => The tags which belong to the content
+        *
+        * @see ParseUrl::getSiteinfo() for more information about scraping
+        * embeddable content
+        */
+       public static function getSiteinfoCached($url, $no_guessing = false, $do_oembed = true)
+       {
+               if ($url == "") {
+                       return false;
+               }
+
+               $r = q(
+                       "SELECT * FROM `parsed_url` WHERE `url` = '%s' AND `guessing` = %d AND `oembed` = %d",
+                       dbesc(normalise_link($url)),
+                       intval(!$no_guessing),
+                       intval($do_oembed)
+               );
+
+               if ($r) {
+                       $data = $r[0]["content"];
+               }
+
+               if (!is_null($data)) {
+                       $data = unserialize($data);
+                       return $data;
+               }
+
+               $data = self::getSiteinfo($url, $no_guessing, $do_oembed);
+
+               dba::insert(
+                       'parsed_url',
+                       array(
+                               'url' => normalise_link($url), 'guessing' => !$no_guessing,
+                               'oembed' => $do_oembed, 'content' => serialize($data),
+                               'created' => datetime_convert()),
+                       true
+               );
+
+               return $data;
+       }
+       /**
+        * @brief Parse a page for embeddable content information
+        *
+        * This method parses to url for meta data which can be used to embed
+        * the content. If available it prioritizes Open Graph meta tags.
+        * If this is not available it uses the twitter cards meta tags.
+        * As fallback it uses standard html elements with meta informations
+        * like \<title\>Awesome Title\</title\> or
+        * \<meta name="description" content="An awesome description"\>
+        *
+        * @param string $url         The url of the page which should be scraped
+        * @param bool $no_guessing If true the parse doens't search for
+        *                          preview pictures
+        * @param bool $do_oembed   The false option is used by the function fetch_oembed()
+        *                          to avoid endless loops
+        * @param int $count       Internal counter to avoid endless loops
+        *
+        * @return array which contains needed data for embedding
+        *    string 'url' => The url of the parsed page
+        *    string 'type' => Content type
+        *    string 'title' => The title of the content
+        *    string 'text' => The description for the content
+        *    string 'image' => A preview image of the content (only available
+        *                if $no_geuessing = false
+        *    array'images' = Array of preview pictures
+        *    string 'keywords' => The tags which belong to the content
+        *
+        * @todo https://developers.google.com/+/plugins/snippet/
+        * @verbatim
+        * <meta itemprop="name" content="Awesome title">
+        * <meta itemprop="description" content="An awesome description">
+        * <meta itemprop="image" content="http://maple.libertreeproject.org/images/tree-icon.png">
+        *
+        * <body itemscope itemtype="http://schema.org/Product">
+        *   <h1 itemprop="name">Shiny Trinket</h1>
+        *   <img itemprop="image" src="{image-url}" />
+        *   <p itemprop="description">Shiny trinkets are shiny.</p>
+        * </body>
+        * @endverbatim
+        */
+       public static function getSiteinfo($url, $no_guessing = false, $do_oembed = true, $count = 1)
+       {
+               $a = get_app();
+
+               $siteinfo = array();
+
+               // Check if the URL does contain a scheme
+               $scheme = parse_url($url, PHP_URL_SCHEME);
+
+               if ($scheme == "") {
+                       $url = "http://".trim($url, "/");
+               }
+
+               if ($count > 10) {
+                       logger("parseurl_getsiteinfo: Endless loop detected for ".$url, LOGGER_DEBUG);
+                       return($siteinfo);
+               }
+
+               $url = trim($url, "'");
+               $url = trim($url, '"');
+
+               $url = strip_tracking_query_params($url);
+
+               $siteinfo["url"] = $url;
+               $siteinfo["type"] = "link";
+
+               $data = z_fetch_url($url);
+               if (!$data['success']) {
+                       return($siteinfo);
+               }
+
+               // If the file is too large then exit
+               if ($data["info"]["download_content_length"] > 1000000) {
+                       return($siteinfo);
+               }
+
+               // If it isn't a HTML file then exit
+               if (($data["info"]["content_type"] != "") && !strstr(strtolower($data["info"]["content_type"]), "html")) {
+                       return($siteinfo);
+               }
+
+               $header = $data["header"];
+               $body = $data["body"];
+
+               if ($do_oembed) {
+                       $oembed_data = OEmbed::fetchURL($url);
+
+                       if (!in_array($oembed_data->type, array("error", "rich", ""))) {
+                               $siteinfo["type"] = $oembed_data->type;
+                       }
+
+                       if (($oembed_data->type == "link") && ($siteinfo["type"] != "photo")) {
+                               if (isset($oembed_data->title)) {
+                                       $siteinfo["title"] = trim($oembed_data->title);
+                               }
+                               if (isset($oembed_data->description)) {
+                                       $siteinfo["text"] = trim($oembed_data->description);
+                               }
+                               if (isset($oembed_data->thumbnail_url)) {
+                                       $siteinfo["image"] = $oembed_data->thumbnail_url;
+                               }
+                       }
+               }
+
+               // Fetch the first mentioned charset. Can be in body or header
+               $charset = "";
+               if (preg_match('/charset=(.*?)['."'".'"\s\n]/', $header, $matches)) {
+                       $charset = trim(trim(trim(array_pop($matches)), ';,'));
+               }
+
+               if ($charset == "") {
+                       $charset = "utf-8";
+               }
+
+               if (($charset != "") && (strtoupper($charset) != "UTF-8")) {
+                       logger("parseurl_getsiteinfo: detected charset ".$charset, LOGGER_DEBUG);
+                       //$body = mb_convert_encoding($body, "UTF-8", $charset);
+                       $body = iconv($charset, "UTF-8//TRANSLIT", $body);
+               }
+
+               $body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
+
+               $doc = new DOMDocument();
+               @$doc->loadHTML($body);
+
+               XML::deleteNode($doc, "style");
+               XML::deleteNode($doc, "script");
+               XML::deleteNode($doc, "option");
+               XML::deleteNode($doc, "h1");
+               XML::deleteNode($doc, "h2");
+               XML::deleteNode($doc, "h3");
+               XML::deleteNode($doc, "h4");
+               XML::deleteNode($doc, "h5");
+               XML::deleteNode($doc, "h6");
+               XML::deleteNode($doc, "ol");
+               XML::deleteNode($doc, "ul");
+
+               $xpath = new DOMXPath($doc);
+
+               $list = $xpath->query("//meta[@content]");
+               foreach ($list as $node) {
+                       $attr = array();
+                       if ($node->attributes->length) {
+                               foreach ($node->attributes as $attribute) {
+                                       $attr[$attribute->name] = $attribute->value;
+                               }
+                       }
+
+                       if (@$attr["http-equiv"] == "refresh") {
+                               $path = $attr["content"];
+                               $pathinfo = explode(";", $path);
+                               $content = "";
+                               foreach ($pathinfo as $value) {
+                                       if (substr(strtolower($value), 0, 4) == "url=") {
+                                               $content = substr($value, 4);
+                                       }
+                               }
+                               if ($content != "") {
+                                       $siteinfo = self::getSiteinfo($content, $no_guessing, $do_oembed, ++$count);
+                                       return($siteinfo);
+                               }
+                       }
+               }
+
+               $list = $xpath->query("//title");
+               if ($list->length > 0) {
+                       $siteinfo["title"] = trim($list->item(0)->nodeValue);
+               }
+
+               //$list = $xpath->query("head/meta[@name]");
+               $list = $xpath->query("//meta[@name]");
+               foreach ($list as $node) {
+                       $attr = array();
+                       if ($node->attributes->length) {
+                               foreach ($node->attributes as $attribute) {
+                                       $attr[$attribute->name] = $attribute->value;
+                               }
+                       }
+
+                       $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
+
+                       if ($attr["content"] != "") {
+                               switch (strtolower($attr["name"])) {
+                                       case "fulltitle":
+                                               $siteinfo["title"] = trim($attr["content"]);
+                                               break;
+                                       case "description":
+                                               $siteinfo["text"] = trim($attr["content"]);
+                                               break;
+                                       case "thumbnail":
+                                               $siteinfo["image"] = $attr["content"];
+                                               break;
+                                       case "twitter:image":
+                                               $siteinfo["image"] = $attr["content"];
+                                               break;
+                                       case "twitter:image:src":
+                                               $siteinfo["image"] = $attr["content"];
+                                               break;
+                                       case "twitter:card":
+                                               if (($siteinfo["type"] == "") || ($attr["content"] == "photo")) {
+                                                       $siteinfo["type"] = $attr["content"];
+                                               }
+                                               break;
+                                       case "twitter:description":
+                                               $siteinfo["text"] = trim($attr["content"]);
+                                               break;
+                                       case "twitter:title":
+                                               $siteinfo["title"] = trim($attr["content"]);
+                                               break;
+                                       case "dc.title":
+                                               $siteinfo["title"] = trim($attr["content"]);
+                                               break;
+                                       case "dc.description":
+                                               $siteinfo["text"] = trim($attr["content"]);
+                                               break;
+                                       case "keywords":
+                                               $keywords = explode(",", $attr["content"]);
+                                               break;
+                                       case "news_keywords":
+                                               $keywords = explode(",", $attr["content"]);
+                                               break;
+                               }
+                       }
+                       if ($siteinfo["type"] == "summary") {
+                               $siteinfo["type"] = "link";
+                       }
+               }
+
+               if (isset($keywords)) {
+                       $siteinfo["keywords"] = array();
+                       foreach ($keywords as $keyword) {
+                               if (!in_array(trim($keyword), $siteinfo["keywords"])) {
+                                       $siteinfo["keywords"][] = trim($keyword);
+                               }
+                       }
+               }
+
+               //$list = $xpath->query("head/meta[@property]");
+               $list = $xpath->query("//meta[@property]");
+               foreach ($list as $node) {
+                       $attr = array();
+                       if ($node->attributes->length) {
+                               foreach ($node->attributes as $attribute) {
+                                       $attr[$attribute->name] = $attribute->value;
+                               }
+                       }
+
+                       $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
+
+                       if ($attr["content"] != "") {
+                               switch (strtolower($attr["property"])) {
+                                       case "og:image":
+                                               $siteinfo["image"] = $attr["content"];
+                                               break;
+                                       case "og:title":
+                                               $siteinfo["title"] = trim($attr["content"]);
+                                               break;
+                                       case "og:description":
+                                               $siteinfo["text"] = trim($attr["content"]);
+                                               break;
+                               }
+                       }
+               }
+
+               if ((@$siteinfo["image"] == "") && !$no_guessing) {
+                       $list = $xpath->query("//img[@src]");
+                       foreach ($list as $node) {
+                               $attr = array();
+                               if ($node->attributes->length) {
+                                       foreach ($node->attributes as $attribute) {
+                                               $attr[$attribute->name] = $attribute->value;
+                                       }
+                               }
+
+                               $src = self::completeUrl($attr["src"], $url);
+                               $photodata = Image::getInfoFromURL($src);
+
+                               if (($photodata) && ($photodata[0] > 150) && ($photodata[1] > 150)) {
+                                       if ($photodata[0] > 300) {
+                                               $photodata[1] = round($photodata[1] * (300 / $photodata[0]));
+                                               $photodata[0] = 300;
+                                       }
+                                       if ($photodata[1] > 300) {
+                                               $photodata[0] = round($photodata[0] * (300 / $photodata[1]));
+                                               $photodata[1] = 300;
+                                       }
+                                       $siteinfo["images"][] = array("src" => $src,
+                                                                       "width" => $photodata[0],
+                                                                       "height" => $photodata[1]);
+                               }
+                       }
+               } elseif ($siteinfo["image"] != "") {
+                       $src = self::completeUrl($siteinfo["image"], $url);
+
+                       unset($siteinfo["image"]);
+
+                       $photodata = Image::getInfoFromURL($src);
+
+                       if (($photodata) && ($photodata[0] > 10) && ($photodata[1] > 10)) {
+                               $siteinfo["images"][] = array("src" => $src,
+                                                               "width" => $photodata[0],
+                                                               "height" => $photodata[1]);
+                       }
+               }
+
+               if ((@$siteinfo["text"] == "") && (@$siteinfo["title"] != "") && !$no_guessing) {
+                       $text = "";
+
+                       $list = $xpath->query("//div[@class='article']");
+                       foreach ($list as $node) {
+                               if (strlen($node->nodeValue) > 40) {
+                                       $text .= " ".trim($node->nodeValue);
+                               }
+                       }
+
+                       if ($text == "") {
+                               $list = $xpath->query("//div[@class='content']");
+                               foreach ($list as $node) {
+                                       if (strlen($node->nodeValue) > 40) {
+                                               $text .= " ".trim($node->nodeValue);
+                                       }
+                               }
+                       }
+
+                       // If none text was found then take the paragraph content
+                       if ($text == "") {
+                               $list = $xpath->query("//p");
+                               foreach ($list as $node) {
+                                       if (strlen($node->nodeValue) > 40) {
+                                               $text .= " ".trim($node->nodeValue);
+                                       }
+                               }
+                       }
+
+                       if ($text != "") {
+                               $text = trim(str_replace(array("\n", "\r"), array(" ", " "), $text));
+
+                               while (strpos($text, "  ")) {
+                                       $text = trim(str_replace("  ", " ", $text));
+                               }
+
+                               $siteinfo["text"] = trim(html_entity_decode(substr($text, 0, 350), ENT_QUOTES, "UTF-8").'...');
+                       }
+               }
+
+               logger("parseurl_getsiteinfo: Siteinfo for ".$url." ".print_r($siteinfo, true), LOGGER_DEBUG);
+
+               call_hooks("getsiteinfo", $siteinfo);
+
+               return($siteinfo);
+       }
+
+       /**
+        * @brief Convert tags from CSV to an array
+        *
+        * @param string $string Tags
+        * @return array with formatted Hashtags
+        */
+       public static function convertTagsToArray($string)
+       {
+               $arr_tags = str_getcsv($string);
+               if (count($arr_tags)) {
+                       // add the # sign to every tag
+                       array_walk($arr_tags, array("self", "arrAddHashes"));
+
+                       return $arr_tags;
+               }
+       }
+
+       /**
+        * @brief Add a hasht sign to a string
+        *
+        *  This method is used as callback function
+        *
+        * @param string $tag The pure tag name
+        * @param int    $k   Counter for internal use
+        * @return void
+        */
+       private static function arrAddHashes(&$tag, $k)
+       {
+               $tag = "#" . $tag;
+       }
+
+       /**
+        * @brief Add a scheme to an url
+        *
+        * The src attribute of some html elements (e.g. images)
+        * can miss the scheme so we need to add the correct
+        * scheme
+        *
+        * @param string $url    The url which possibly does have
+        *                       a missing scheme (a link to an image)
+        * @param string $scheme The url with a correct scheme
+        *                       (e.g. the url from the webpage which does contain the image)
+        *
+        * @return string The url with a scheme
+        */
+       private static function completeUrl($url, $scheme)
+       {
+               $urlarr = parse_url($url);
+
+               // If the url does allready have an scheme
+               // we can stop the process here
+               if (isset($urlarr["scheme"])) {
+                       return($url);
+               }
+
+               $schemearr = parse_url($scheme);
+
+               $complete = $schemearr["scheme"]."://".$schemearr["host"];
+
+               if (@$schemearr["port"] != "") {
+                       $complete .= ":".$schemearr["port"];
+               }
+
+               if (strpos($urlarr["path"], "/") !== 0) {
+                       $complete .= "/";
+               }
+
+               $complete .= $urlarr["path"];
+
+               if (@$urlarr["query"] != "") {
+                       $complete .= "?".$urlarr["query"];
+               }
+
+               if (@$urlarr["fragment"] != "") {
+                       $complete .= "#".$urlarr["fragment"];
+               }
+
+               return($complete);
+       }
+}
index 9160418948182f075017da1b7e1d965cf2850eac..6aa0273ecf1252854c2e407011ee03e39f678871 100644 (file)
@@ -31,8 +31,6 @@ return array(
     'Friendica\\Model\\Profile' => $baseDir . '/src/Model/Profile.php',
     'Friendica\\Model\\User' => $baseDir . '/src/Model/User.php',
     'Friendica\\Module\\Feed' => $baseDir . '/src/Module/Feed.php',
-    'Friendica\\Module\\Login' => $baseDir . '/src/Module/Login.php',
-    'Friendica\\Module\\Logout' => $baseDir . '/src/Module/Logout.php',
     'Friendica\\Module\\Oembed' => $baseDir . '/src/Module/Oembed.php',
     'Friendica\\Network\\FKOAuth1' => $baseDir . '/src/Network/FKOAuth1.php',
     'Friendica\\Network\\FKOAuthDataStore' => $baseDir . '/src/Network/FKOAuthDataStore.php',
@@ -61,7 +59,6 @@ return array(
     'Friendica\\Object\\Image' => $baseDir . '/src/Object/Image.php',
     'Friendica\\Object\\Post' => $baseDir . '/src/Object/Post.php',
     'Friendica\\Object\\Thread' => $baseDir . '/src/Object/Thread.php',
-    'Friendica\\ParseUrl' => $baseDir . '/src/ParseUrl.php',
     'Friendica\\Protocol\\DFRN' => $baseDir . '/src/Protocol/DFRN.php',
     'Friendica\\Protocol\\Diaspora' => $baseDir . '/src/Protocol/Diaspora.php',
     'Friendica\\Protocol\\Email' => $baseDir . '/src/Protocol/Email.php',
@@ -75,6 +72,7 @@ return array(
     'Friendica\\Util\\ExAuth' => $baseDir . '/src/Util/ExAuth.php',
     'Friendica\\Util\\Lock' => $baseDir . '/src/Util/Lock.php',
     'Friendica\\Util\\Map' => $baseDir . '/src/Util/Map.php',
+    'Friendica\\Util\\ParseUrl' => $baseDir . '/src/Util/ParseUrl.php',
     'Friendica\\Util\\PidFile' => $baseDir . '/src/Util/Pidfile.php',
     'Friendica\\Util\\XML' => $baseDir . '/src/Util/XML.php',
     'Friendica\\Worker\\CheckVersion' => $baseDir . '/src/Worker/CheckVersion.php',
index 45ba7e769a0bab8055a2e004dfe5c6e851b80d24..d09872de5c292d22479573478a1f743c4cc69978 100644 (file)
@@ -84,8 +84,6 @@ class ComposerStaticInitFriendica
         'Friendica\\Model\\Profile' => __DIR__ . '/../..' . '/src/Model/Profile.php',
         'Friendica\\Model\\User' => __DIR__ . '/../..' . '/src/Model/User.php',
         'Friendica\\Module\\Feed' => __DIR__ . '/../..' . '/src/Module/Feed.php',
-        'Friendica\\Module\\Login' => __DIR__ . '/../..' . '/src/Module/Login.php',
-        'Friendica\\Module\\Logout' => __DIR__ . '/../..' . '/src/Module/Logout.php',
         'Friendica\\Module\\Oembed' => __DIR__ . '/../..' . '/src/Module/Oembed.php',
         'Friendica\\Network\\FKOAuth1' => __DIR__ . '/../..' . '/src/Network/FKOAuth1.php',
         'Friendica\\Network\\FKOAuthDataStore' => __DIR__ . '/../..' . '/src/Network/FKOAuthDataStore.php',
@@ -114,7 +112,6 @@ class ComposerStaticInitFriendica
         'Friendica\\Object\\Image' => __DIR__ . '/../..' . '/src/Object/Image.php',
         'Friendica\\Object\\Post' => __DIR__ . '/../..' . '/src/Object/Post.php',
         'Friendica\\Object\\Thread' => __DIR__ . '/../..' . '/src/Object/Thread.php',
-        'Friendica\\ParseUrl' => __DIR__ . '/../..' . '/src/ParseUrl.php',
         'Friendica\\Protocol\\DFRN' => __DIR__ . '/../..' . '/src/Protocol/DFRN.php',
         'Friendica\\Protocol\\Diaspora' => __DIR__ . '/../..' . '/src/Protocol/Diaspora.php',
         'Friendica\\Protocol\\Email' => __DIR__ . '/../..' . '/src/Protocol/Email.php',
@@ -128,6 +125,7 @@ class ComposerStaticInitFriendica
         'Friendica\\Util\\ExAuth' => __DIR__ . '/../..' . '/src/Util/ExAuth.php',
         'Friendica\\Util\\Lock' => __DIR__ . '/../..' . '/src/Util/Lock.php',
         'Friendica\\Util\\Map' => __DIR__ . '/../..' . '/src/Util/Map.php',
+        'Friendica\\Util\\ParseUrl' => __DIR__ . '/../..' . '/src/Util/ParseUrl.php',
         'Friendica\\Util\\PidFile' => __DIR__ . '/../..' . '/src/Util/Pidfile.php',
         'Friendica\\Util\\XML' => __DIR__ . '/../..' . '/src/Util/XML.php',
         'Friendica\\Worker\\CheckVersion' => __DIR__ . '/../..' . '/src/Worker/CheckVersion.php',
index 9f7b3601e5356bf4d8c8ff76460cfb628dc5c878..160804f624b580fc6704472089337fe9103be502 100644 (file)
@@ -78,6 +78,8 @@
        <h3>{{$corporate}}</h3>
        {{include file="field_input.tpl" field=$allowed_sites}}
        {{include file="field_input.tpl" field=$allowed_email}}
+       {{include file="field_checkbox.tpl" field=$no_oembed_rich_content}}
+       {{include file="field_input.tpl" field=$allowed_oembed}}
        {{include file="field_checkbox.tpl" field=$block_public}}
        {{include file="field_checkbox.tpl" field=$force_publish}}
        {{include file="field_select.tpl" field=$community_page_style}}