X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=object%2FItem.php;h=4f89ea804c92eac4cdf3361a16a890b7e2e262ec;hb=669dafcf22e5c4baf5c2248c967226f915cd4403;hp=b693520b93d8cb2e932af589a6b5da94cb51a46a;hpb=83e5c31d2823e5c46d062b0ec38afabda5199a0c;p=friendica.git diff --git a/object/Item.php b/object/Item.php index b693520b93..4f89ea804c 100644 --- a/object/Item.php +++ b/object/Item.php @@ -68,6 +68,11 @@ class Item extends BaseObject { continue; } + // You can always comment on Diaspora items + if (($item['network'] == NETWORK_DIASPORA) && (local_user() == $item['uid'])) { + $item['writable'] = true; + } + $item['pagedrop'] = $data['pagedrop']; $child = new Item($item); $this->add_child($child); @@ -91,7 +96,12 @@ class Item extends BaseObject { $item = $this->get_data(); $edited = false; - if (strcmp($item['created'], $item['edited'])<>0) { + // If the time between "created" and "edited" differs we add + // a notice that the post was edited. + // Note: In some networks reshared items seem to have (sometimes) a difference + // between creation time and edit time of a second. Thats why we add the notice + // only if the difference is more than 1 second. + if (strtotime($item['edited']) - strtotime($item['created']) > 1) { $edited = array( 'label' => t('This entry was edited'), 'date' => datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r'), @@ -112,7 +122,7 @@ class Item extends BaseObject { $conv = $this->get_conversation(); - $lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) + $lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid'])))) ? t('Private Message') : false); @@ -158,7 +168,7 @@ class Item extends BaseObject { $profile_link = zrl($profile_link); } - if (!isset($item['author-thumb']) OR ($item['author-thumb'] == "")) { + if (!isset($item['author-thumb']) || ($item['author-thumb'] == "")) { $author_contact = get_contact_details_by_url($item['author-link'], $conv->get_profile_owner()); if ($author_contact["thumb"]) { $item['author-thumb'] = $author_contact["thumb"]; @@ -167,7 +177,7 @@ class Item extends BaseObject { } } - 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'], $conv->get_profile_owner()); if ($owner_contact["thumb"]) { $item['owner-thumb'] = $owner_contact["thumb"]; @@ -180,7 +190,6 @@ class Item extends BaseObject { call_hooks('render_location',$locate); $location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate)); - $searchpath = "search?tag="; $tags=array(); $hashtags = array(); $mentions = array(); @@ -242,17 +251,14 @@ class Item extends BaseObject { 'classundo' => (($item['starred']) ? "" : "hidden"), 'starred' => t('starred'), ); - $r = q("SELECT `ignored` FROM `thread` WHERE `uid` = %d AND `iid` = %d LIMIT 1", - intval($item['uid']), - intval($item['id']) - ); + $r = dba::select('thread', array('ignored'), array('uid' => $item['uid'], 'iid' => $item['id']), array('limit' => 1)); if (dbm::is_result($r)) { $ignore = array( 'do' => t("ignore thread"), 'undo' => t("unignore thread"), 'toggle' => t("toggle ignore status"), - 'classdo' => (($r[0]['ignored']) ? "hidden" : ""), - 'classundo' => (($r[0]['ignored']) ? "" : "hidden"), + 'classdo' => (($r['ignored']) ? "hidden" : ""), + 'classundo' => (($r['ignored']) ? "" : "hidden"), 'ignored' => t('ignored'), ); } @@ -310,28 +316,16 @@ class Item extends BaseObject { // Disable features that aren't available in several networks /// @todo Add NETWORK_DIASPORA when it will pass this information - if (!in_array($item["item_network"], array(NETWORK_DFRN)) AND isset($buttons["dislike"])) { + if (!in_array($item["item_network"], array(NETWORK_DFRN)) && isset($buttons["dislike"])) { unset($buttons["dislike"],$isevent); $tagger = ''; } - if (($item["item_network"] == NETWORK_FEED) AND isset($buttons["like"])) { - unset($buttons["like"]); - } - - if (($item["item_network"] == NETWORK_MAIL) AND isset($buttons["like"])) { - unset($buttons["like"]); - } - - // Diaspora isn't able to do likes on comments - but Hubzilla does - /// @todo When Diaspora will pass this information we will remove these lines - if (($item["item_network"] == NETWORK_DIASPORA) AND ($indent == 'comment') AND - !Diaspora::is_redmatrix($item["owner-link"]) AND isset($buttons["like"])) { + if (($item["item_network"] == NETWORK_FEED) && isset($buttons["like"])) { unset($buttons["like"]); } - // Facebook can like comments - but it isn't programmed in the connector yet. - if (($item["item_network"] == NETWORK_FACEBOOK) AND ($indent == 'comment') AND isset($buttons["like"])) { + if (($item["item_network"] == NETWORK_MAIL) && isset($buttons["like"])) { unset($buttons["like"]); } @@ -397,6 +391,9 @@ class Item extends BaseObject { 'edited' => $edited, 'network' => $item["item_network"], 'network_name' => network_to_name($item['item_network'], $profile_link), + 'received' => $item['received'], + 'commented' => $item['commented'], + 'created_date' => $item['created'], ); $arr = array('item' => $item, 'output' => $tmp_item); @@ -736,7 +733,7 @@ class Item extends BaseObject { if($this->is_toplevel()) { if($conv->get_mode() !== 'profile') { - if($this->get_data_value('wall') AND !$this->get_data_value('self')) { + if($this->get_data_value('wall') && !$this->get_data_value('self')) { // On the network page, I am the owner. On the display page it will be the profile owner. // This will have been stored in $a->page_contact by our calling page. // Put this person as the wall owner of the wall-to-wall notice. @@ -754,20 +751,20 @@ class Item extends BaseObject { if ((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) { // The author url doesn't match the owner (typically the contact) - // and also doesn't match the contact alias. - // The name match is a hack to catch several weird cases where URLs are + // and also doesn't match the contact alias. + // The name match is a hack to catch several weird cases where URLs are // all over the park. It can be tricked, but this prevents you from // seeing "Bob Smith to Bob Smith via Wall-to-wall" and you know darn - // well that it's the same Bob Smith. + // well that it's the same Bob Smith. - // But it could be somebody else with the same name. It just isn't highly likely. + // But it could be somebody else with the same name. It just isn't highly likely. $this->owner_photo = $this->get_data_value('owner-avatar'); $this->owner_name = $this->get_data_value('owner-name'); $this->wall_to_wall = true; // If it is our contact, use a friendly redirect link - if ((link_compare($this->get_data_value('owner-link'),$this->get_data_value('url'))) + if ((link_compare($this->get_data_value('owner-link'),$this->get_data_value('url'))) && ($this->get_data_value('network') === NETWORK_DFRN)) { $this->owner_url = $this->get_redirect_url(); } else { @@ -807,5 +804,3 @@ class Item extends BaseObject { } } -/// @TODO These are discouraged and should be removed: -?>