]> git.mxchange.org Git - friendica.git/blobdiff - include/conversation.php
Merge pull request #3879 from zeroadam/Remove-Includes-#3873
[friendica.git] / include / conversation.php
index 27f9578ed8009b9f7bfc3fe8ff0df801a2c64cd3..d4fc2a40e599ac5b720846fe338fa601aad83158 100644 (file)
@@ -1,6 +1,9 @@
 <?php
 
 use Friendica\App;
+use Friendica\Core\Config;
+use Friendica\Core\PConfig;
+use Friendica\Core\System;
 
 require_once "include/bbcode.php";
 require_once "include/acl_selectors.php";
@@ -65,7 +68,7 @@ function item_redir_and_replace_images($body, $images, $cid) {
        while ($pos !== false && $cnt < 1000) {
 
                $search = '/\[url\=(.*?)\]\[!#saved_image([0-9]*)#!\]\[\/url\]' . '/is';
-               $replace = '[url=' . z_path() . '/redir/' . $cid
+               $replace = '[url=' . System::baseUrl() . '/redir/' . $cid
                                   . '?f=1&url=' . '$1' . '][!#saved_image' . '$2' .'#!][/url]';
 
                $newbody .= substr($origbody, 0, $pos['start']['open']);
@@ -358,7 +361,7 @@ function localize_item(&$item) {
        $x = stristr($item['plink'],'/display/');
        if ($x) {
                $sparkle = false;
-               $y = best_link_url($item, $sparkle, true);
+               $y = best_link_url($item, $sparkle);
 
                if (strstr($y, '/redir/')) {
                        $item['plink'] = $y . '?f=&url=' . $item['plink'];
@@ -424,7 +427,6 @@ function item_fieldlists() {
 These Fields are not added below (yet). They are here to for bug search.
 `item`.`type`,
 `item`.`extid`,
-`item`.`received`,
 `item`.`changed`,
 `item`.`moderated`,
 `item`.`target-type`,
@@ -451,7 +453,7 @@ These Fields are not added below (yet). They are here to for bug search.
                `item`.`owner-id`, `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`,
                `item`.`contact-id`, `item`.`uid`, `item`.`id`, `item`.`parent`,
                `item`.`uri`, `item`.`thr-parent`, `item`.`parent-uri`,
-               `item`.`commented`, `item`.`created`, `item`.`edited`,
+               `item`.`commented`, `item`.`created`, `item`.`edited`, `item`.`received`,
                `item`.`verb`, `item`.`object-type`, `item`.`postopts`, `item`.`plink`,
                `item`.`guid`, `item`.`wall`, `item`.`private`, `item`.`starred`,
                `item`.`title`, `item`.`body`, `item`.`file`, `item`.`event-id`,
@@ -463,7 +465,14 @@ These Fields are not added below (yet). They are here to for bug search.
                `author`.`thumb` AS `author-thumb`, `owner`.`thumb` AS `owner-thumb`,
 
                `contact`.`network`, `contact`.`url`, `contact`.`name`, `contact`.`writable`,
-               `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`alias`";
+               `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`alias`,
+
+               `event`.`created` AS `event-created`, `event`.`edited` AS `event-edited`,
+               `event`.`start` AS `event-start`,`event`.`finish` AS `event-finish`,
+               `event`.`summary` AS `event-summary`,`event`.`desc` AS `event-desc`,
+               `event`.`location` AS `event-location`, `event`.`type` AS `event-type`,
+               `event`.`nofinish` AS `event-nofinish`,`event`.`adjust` AS `event-adjust`,
+               `event`.`ignore` AS `event-ignore`, `event`.`id` AS `event-id`";
 }
 
 /**
@@ -473,7 +482,8 @@ function item_joins() {
        return "STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND
                (NOT `contact`.`blocked` OR `contact`.`pending`)
                LEFT JOIN `contact` AS `author` ON `author`.`id`=`item`.`author-id`
-               LEFT JOIN `contact` AS `owner` ON `owner`.`id`=`item`.`owner-id`";
+               LEFT JOIN `contact` AS `owner` ON `owner`.`id`=`item`.`owner-id`
+               LEFT JOIN `event` ON `event-id` = `event`.`id`";
 }
 
 /**
@@ -509,7 +519,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
        $arr_blocked = null;
 
        if (local_user()) {
-               $str_blocked = get_pconfig(local_user(), 'system', 'blocked');
+               $str_blocked = PConfig::get(local_user(), 'system', 'blocked');
                if ($str_blocked) {
                        $arr_blocked = explode(',', $str_blocked);
                        for ($x = 0; $x < count($arr_blocked); $x ++) {
@@ -681,15 +691,19 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
                                $hashtags = array();
                                $mentions = array();
 
-                               $taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
-                                               intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
+                               $searchpath = System::baseUrl()."/search?tag=";
 
-                               foreach ($taglist as $tag) {
+                               $taglist = dba::select('term', array('type', 'term', 'url'),
+                                                       array("`otype` = ? AND `oid` = ? AND `type` IN (?, ?)", TERM_OBJ_POST, $item['id'], TERM_HASHTAG, TERM_MENTION),
+                                                       array('order' => array('tid')));
 
+                               while ($tag = dba::fetch($taglist)) {
                                        if ($tag["url"] == "") {
                                                $tag["url"] = $searchpath . strtolower($tag["term"]);
                                        }
 
+                                       $tag["url"] = best_link_url($item, $sp, $tag["url"]);
+
                                        if ($tag["type"] == TERM_HASHTAG) {
                                                $hashtags[] = "#<a href=\"" . $tag["url"] . "\" target=\"_blank\">" . $tag["term"] . "</a>";
                                                $prefix = "#";
@@ -699,9 +713,10 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
                                        }
                                        $tags[] = $prefix."<a href=\"" . $tag["url"] . "\" target=\"_blank\">" . $tag["term"] . "</a>";
                                }
+                               dba::close($taglist);
 
                                $sp = false;
-                               $profile_link = best_link_url($item,$sp);
+                               $profile_link = best_link_url($item, $sp);
                                if ($profile_link === 'mailbox') {
                                        $profile_link = '';
                                }
@@ -712,7 +727,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
                                        $profile_link = zrl($profile_link);
                                }
 
-                               if (!x($item, 'author-thumb') OR ($item['author-thumb'] == "")) {
+                               if (!x($item, 'author-thumb') || ($item['author-thumb'] == "")) {
                                        $author_contact = get_contact_details_by_url($item['author-link'], $profile_owner);
                                        if ($author_contact["thumb"]) {
                                                $item['author-thumb'] = $author_contact["thumb"];
@@ -721,7 +736,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
                                        }
                                }
 
-                               if (!isset($item['owner-thumb']) OR ($item['owner-thumb'] == "")) {
+                               if (!isset($item['owner-thumb']) || ($item['owner-thumb'] == "")) {
                                        $owner_contact = get_contact_details_by_url($item['owner-link'], $profile_owner);
                                        if ($owner_contact["thumb"]) {
                                                $item['owner-thumb'] = $owner_contact["thumb"];
@@ -787,6 +802,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
                                $tmp_item = array(
                                        'template' => $tpl,
                                        'id' => (($preview) ? 'P0' : $item['item_id']),
+                                       'guid' => (($preview) ? 'Q0' : $item['guid']),
                                        'network' => $item['item_network'],
                                        'network_name' => network_to_name($item['item_network'], $profile_link),
                                        'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
@@ -795,7 +811,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
                                        'name' => $profile_name_e,
                                        'sparkle' => $sparkle,
                                        'lock' => $lock,
-                                       'thumb' => App::remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)),
+                                       'thumb' => System::removedBaseUrl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)),
                                        'title' => $item['title_e'],
                                        'body' => $body_e,
                                        'tags' => $tags_e,
@@ -814,7 +830,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
                                        'indent' => '',
                                        'owner_name' => $owner_name_e,
                                        'owner_url' => $owner_url,
-                                       'owner_photo' => App::remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)),
+                                       'owner_photo' => System::removedBaseUrl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)),
                                        'plink' => get_plink($item),
                                        'edpost' => false,
                                        'isstarred' => $isstarred,
@@ -901,7 +917,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
        }
 
        $o = replace_macros($page_template, array(
-               '$baseurl' => App::get_baseurl($ssl_state),
+               '$baseurl' => System::baseUrl($ssl_state),
                '$return_path' => $a->query_string,
                '$live_update' => $live_update_div,
                '$remove' => t('remove'),
@@ -914,7 +930,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
        return $o;
 }}
 
-function best_link_url($item, &$sparkle, $ssl_state = false) {
+function best_link_url($item, &$sparkle, $url = '') {
 
        $best_url = '';
        $sparkle  = false;
@@ -922,15 +938,26 @@ function best_link_url($item, &$sparkle, $ssl_state = false) {
        $clean_url = normalise_link($item['author-link']);
 
        if (local_user()) {
-               $r = q("SELECT `id` FROM `contact` WHERE `network` = '%s' AND `uid` = %d AND `nurl` = '%s' AND NOT `pending` LIMIT 1",
-                       dbesc(NETWORK_DFRN), intval(local_user()), dbesc(normalise_link($clean_url)));
+               $r = dba::select('contact', array('id'),
+                       array('network' => NETWORK_DFRN, 'uid' => local_user(), 'nurl' => normalise_link($clean_url), 'pending' => false),
+                       array('limit' => 1));
                if (dbm::is_result($r)) {
-                       $best_url = 'redir/' . $r[0]['id'];
+                       $best_url = 'redir/' . $r['id'];
                        $sparkle = true;
+                       if ($url != '') {
+                               $hostname = get_app()->get_hostname();
+                               if (!strstr($url, $hostname)) {
+                                       $best_url .= "?url=".$url;
+                               } else {
+                                       $best_url = $url;
+                               }
+                       }
                }
        }
        if (! $best_url) {
-               if (strlen($item['author-link'])) {
+               if ($url != '') {
+                       $best_url = $url;
+               } elseif (strlen($item['author-link'])) {
                        $best_url = $item['author-link'];
                } else {
                        $best_url = $item['url'];
@@ -941,14 +968,7 @@ function best_link_url($item, &$sparkle, $ssl_state = false) {
 }
 
 
-if (! function_exists('item_photo_menu')) {
 function item_photo_menu($item) {
-       $ssl_state = false;
-
-       if (local_user()) {
-               $ssl_state = true;
-       }
-
        $sub_link = '';
        $poke_link = '';
        $contact_url = '';
@@ -963,7 +983,7 @@ function item_photo_menu($item) {
        }
 
        $sparkle = false;
-       $profile_link = best_link_url($item, $sparkle, $ssl_state);
+       $profile_link = best_link_url($item, $sparkle);
        if ($profile_link === 'mailbox') {
                $profile_link = '';
        }
@@ -971,12 +991,11 @@ function item_photo_menu($item) {
        $cid = 0;
        $network = '';
        $rel = 0;
-       $r = q("SELECT `id`, `network`, `rel` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' LIMIT 1",
-               intval(local_user()), dbesc(normalise_link($item['author-link'])));
+       $r = dba::select('contact', array('id', 'network', 'rel'), array('uid' => local_user(), 'nurl' => normalise_link($item['author-link'])), array('limit' => 1));
        if (dbm::is_result($r)) {
-               $cid = $r[0]['id'];
-               $network = $r[0]['network'];
-               $rel = $r[0]['rel'];
+               $cid = $r['id'];
+               $network = $r['network'];
+               $rel = $r['rel'];
        }
 
        if ($sparkle) {
@@ -1013,7 +1032,7 @@ function item_photo_menu($item) {
                        $menu[t("Poke")] = $poke_link;
                }
 
-               if ((($cid == 0) OR ($rel == CONTACT_IS_FOLLOWER)) AND
+               if ((($cid == 0) || ($rel == CONTACT_IS_FOLLOWER)) &&
                        in_array($item['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA))) {
                        $menu[t('Connect/Follow')] = 'follow?url=' . urlencode($item['author-link']);
                }
@@ -1037,7 +1056,7 @@ function item_photo_menu($item) {
                }
        }
        return $o;
-}}
+}
 
 if (! function_exists('builtin_activity_puller')) {
 /**
@@ -1218,7 +1237,7 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false) {
        $tpl = get_markup_template('jot-header.tpl');
        $a->page['htmlhead'] .= replace_macros($tpl, array(
                '$newpost' => 'true',
-               '$baseurl' => App::get_baseurl(true),
+               '$baseurl' => System::baseUrl(true),
                '$geotag' => $geotag,
                '$nickname' => $x['nickname'],
                '$ispublic' => t('Visible to <strong>everybody</strong>'),
@@ -1234,7 +1253,7 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false) {
        $tpl = get_markup_template('jot-end.tpl');
        $a->page['end'] .= replace_macros($tpl, array(
                '$newpost' => 'true',
-               '$baseurl' => App::get_baseurl(true),
+               '$baseurl' => System::baseUrl(true),
                '$geotag' => $geotag,
                '$nickname' => $x['nickname'],
                '$ispublic' => t('Visible to <strong>everybody</strong>'),
@@ -1302,7 +1321,7 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false) {
                '$ptyp' => (($notes_cid) ? 'note' : 'wall'),
                '$content' => $x['content'],
                '$post_id' => $x['post_id'],
-               '$baseurl' => App::get_baseurl(true),
+               '$baseurl' => System::baseUrl(true),
                '$defloc' => $x['default_location'],
                '$visitor' => $x['visitor'],
                '$pvisit' => (($notes_cid) ? 'none' : $x['visitor']),
@@ -1346,7 +1365,7 @@ function get_item_children($arr, $parent) {
        $a = get_app();
        foreach ($arr as $item) {
                if ($item['id'] != $item['parent']) {
-                       if (get_config('system', 'thread_allow') && $a->theme_thread_allow) {
+                       if (Config::get('system', 'thread_allow') && $a->theme_thread_allow) {
                                // Fallback to parent-uri if thr-parent is not set
                                $thr_parent = $item['thr-parent'];
                                if ($thr_parent == '') {