X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fconversation.php;h=3415a927c923883e3bb6f1c70b61028a6aff2fc1;hb=5efab810f5ac961995940e8ca4051123334111c2;hp=38f6e76862c5a4bad2faea85b8006ff86bc9ac65;hpb=0f8148a4cb7c477b363cccdb5c638cd10d9df531;p=friendica.git
diff --git a/include/conversation.php b/include/conversation.php
index 38f6e76862..3415a927c9 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -373,6 +373,84 @@ function visible_activity($item) {
return true;
}
+/**
+ * @brief SQL query for items
+ */
+function item_query() {
+
+ return "SELECT ".item_fieldlists()." FROM `item` ".
+ item_joins()." WHERE ".item_condition();
+}
+
+/**
+ * @brief List of all data fields that are needed for displaying items
+ */
+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`,
+`item`.`target`,
+`item`.`resource-id`,
+`item`.`tag`,
+`item`.`inform`,
+`item`.`pubmail`,
+`item`.`visible`,
+`item`.`spam`,
+`item`.`bookmark`,
+`item`.`unseen`,
+`item`.`deleted`,
+`item`.`origin`,
+`item`.`forum_mode`,
+`item`.`last-child`,
+`item`.`mention`,
+`item`.`global`,
+`item`.`gcontact-id`,
+`item`.`shadow`,
+*/
+
+ return "`item`.`author-link`, `item`.`author-name`, `item`.`author-avatar`,
+ `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`.`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`,
+ `item`.`location`, `item`.`coord`, `item`.`app`, `item`.`attach`,
+ `item`.`rendered-hash`, `item`.`rendered-html`, `item`.`object`,
+ `item`.`allow_cid`, `item`.`allow_gid`, `item`.`deny_cid`, `item`.`deny_gid`,
+ `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
+
+ `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`";
+}
+
+/**
+ * @brief SQL join for contacts that are needed for displaying items
+ */
+function item_joins() {
+
+ return "STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND
+ NOT `contact`.`blocked` AND NOT `contact`.`pending`
+ LEFT JOIN `contact` AS `author` ON `author`.`id`=`item`.`author-id`
+ LEFT JOIN `contact` AS `owner` ON `owner`.`id`=`item`.`owner-id`";
+}
+
+/**
+ * @brief SQL condition for items that are needed for displaying items
+ */
+function item_condition() {
+
+ return "`item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`";
+}
/**
* "Render" a conversation or list of items for HTML display.
@@ -543,7 +621,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$comment = '';
$owner_url = '';
- $owner_photo = '';
$owner_name = '';
$sparkle = '';
@@ -588,18 +665,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$tags[] = $prefix."".$tag["term"]."";
}
- /*foreach(explode(',',$item['tag']) as $tag){
- $tag = trim($tag);
- if ($tag!="") {
- $t = bbcode($tag);
- $tags[] = $t;
- if($t[0] == '#')
- $hashtags[] = $t;
- elseif($t[0] == '@')
- $mentions[] = $t;
- }
- }*/
-
$sp = false;
$profile_link = best_link_url($item,$sp);
if($profile_link === 'mailbox')
@@ -609,12 +674,21 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
else
$profile_link = zrl($profile_link);
- // Don't rely on the author-avatar. It is better to use the data from the contact table
- $author_contact = get_contact_details_by_url($item['author-link'], $profile_owner);
- if ($author_contact["thumb"])
- $profile_avatar = $author_contact["thumb"];
- else
- $profile_avatar = $item['author-avatar'];
+ if (!isset($item['author-thumb']) OR ($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"];
+ else
+ $item['author-thumb'] = $item['author-avatar'];
+ }
+
+ if (!isset($item['owner-thumb']) OR ($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"];
+ else
+ $item['owner-thumb'] = $item['owner-avatar'];
+ }
$locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => '');
call_hooks('render_location',$locate);
@@ -682,7 +756,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'name' => $profile_name_e,
'sparkle' => $sparkle,
'lock' => $lock,
- 'thumb' => App::remove_baseurl(proxy_url($profile_avatar, false, PROXY_SIZE_THUMB)),
+ 'thumb' => App::remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)),
'title' => $item['title_e'],
'body' => $body_e,
'tags' => $tags_e,
@@ -701,7 +775,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'indent' => '',
'owner_name' => $owner_name_e,
'owner_url' => $owner_url,
- 'owner_photo' => proxy_url($owner_photo, false, PROXY_SIZE_THUMB),
+ 'owner_photo' => App::remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)),
'plink' => get_plink($item),
'edpost' => false,
'isstarred' => $isstarred,
@@ -805,15 +879,13 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
function best_link_url($item,&$sparkle,$ssl_state = false) {
- $a = get_app();
-
$best_url = '';
$sparkle = 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' LIMIT 1",
+ $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)));
if ($r) {
$best_url = 'redir/'.$r[0]['id'];
@@ -833,7 +905,6 @@ function best_link_url($item,&$sparkle,$ssl_state = false) {
if(! function_exists('item_photo_menu')){
function item_photo_menu($item){
- $a = get_app();
$ssl_state = false;
@@ -1065,7 +1136,7 @@ function format_like($cnt,$arr,$type,$id) {
$explikers = sprintf( t('%s don\'t attend.'), $likers);
break;
case 'attendmaybe':
- $phrase = sprintf( t('%2$d people anttend maybe'), $spanatts, $cnt);
+ $phrase = sprintf( t('%2$d people attend maybe'), $spanatts, $cnt);
$explikers = sprintf( t('%s anttend maybe.'), $likers);
break;
}
@@ -1209,6 +1280,10 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
'$private' => t('Private post'),
'$is_private' => $private_post,
'$public_link' => $public_post_link,
+
+ //jot nav tab (used in some themes)
+ '$message' => t('Message'),
+ '$browser' => t('Browser'),
));