X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=object%2FItem.php;h=495a4100cf355e0570449cb7922cc71aeab32dd4;hb=b4d203947b5003ecf5e3a14ee7f2d913274cda1f;hp=4b3dfd56426249170bf3f6ead4cc66e4a4d8052d;hpb=1490f2d3b724348909ff879db4773871dec1cd7f;p=friendica.git diff --git a/object/Item.php b/object/Item.php index 4b3dfd5642..495a4100cf 100644 --- a/object/Item.php +++ b/object/Item.php @@ -38,9 +38,9 @@ class Item extends BaseObject { $this->set_template('wall'); $this->toplevel = ($this->get_id() == $this->get_data_value('parent')); - if(is_array($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $visitor) { - if($visitor['cid'] == $this->get_data_value('contact-id')) { + if (is_array($_SESSION['remote'])) { + foreach ($_SESSION['remote'] as $visitor) { + if ($visitor['cid'] == $this->get_data_value('contact-id')) { $this->visiting = true; break; } @@ -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 "editet" differes we add + // a notices that the post was editet. + // 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 (abs(strtotime($item['created']) - strtotime($item['edited'])) > 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'), ); } @@ -287,32 +293,6 @@ class Item extends BaseObject { localize_item($item); - if ($item["postopts"] and !get_config("system", "suppress_language")) { - //$langdata = explode(";", $item["postopts"]); - //$langstr = substr($langdata[0], 5)." (".round($langdata[1]*100, 1)."%)"; - $langstr = ""; - if (substr($item["postopts"], 0, 5) == "lang=") { - $postopts = substr($item["postopts"], 5); - - $languages = explode(":", $postopts); - - if (sizeof($languages) == 1) { - $languages = array(); - $languages[] = $postopts; - } - - foreach ($languages as $language) { - $langdata = explode(";", $language); - if ($langstr != "") { - $langstr .= ", "; - } - - //$langstr .= $langdata[0]." (".round($langdata[1]*100, 1)."%)"; - $langstr .= round($langdata[1]*100, 1)."% ".$langdata[0]; - } - } - } - $body = prepare_body($item,true); list($categories, $folders) = get_cats_and_terms($item); @@ -334,34 +314,18 @@ class Item extends BaseObject { } // Disable features that aren't available in several networks - if (($item["item_network"] != NETWORK_DFRN) AND isset($buttons["dislike"])) { + + /// @todo Add NETWORK_DIASPORA when it will pass this information + 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"])) { + if (($item["item_network"] == NETWORK_FEED) && isset($buttons["like"])) { unset($buttons["like"]); } - // Disabled for testing purposes - - // Diaspora isn't able to do likes on comments - but red does - //if (($item["item_network"] == NETWORK_DIASPORA) AND ($indent == 'comment') AND - // !Diaspora::is_redmatrix($item["owner-link"]) AND isset($buttons["like"])) { - // unset($buttons["like"]); - //} - - // Diaspora doesn't has multithreaded comments - //if (($item["item_network"] == NETWORK_DIASPORA) AND ($indent == 'comment')) { - // unset($comment); - //} - - // 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"]); } @@ -424,10 +388,12 @@ class Item extends BaseObject { 'previewing' => ($conv->is_preview() ? ' preview ' : ''), 'wait' => t('Please wait'), 'thread_level' => $thread_level, - 'postopts' => $langstr, '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); @@ -767,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. @@ -785,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 { @@ -838,5 +804,3 @@ class Item extends BaseObject { } } -/// @TODO These are discouraged and should be removed: -?>