X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fconversation.php;h=30ac3533def49f434e35573badd39fe280cf8203;hb=4b8f3a4194b8fbec19e8a085fcd16e9369fbfcd2;hp=68aa1fa33c3c8399f4df2b4783976ead38344b73;hpb=e31ee9ed82637ade0fb437767b17c1af6071a918;p=friendica.git diff --git a/include/conversation.php b/include/conversation.php index 68aa1fa33c..30ac3533de 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1,5 +1,8 @@ "; if ($item['verb']=== ACTIVITY_LIKE || $item['verb']=== ACTIVITY_DISLIKE){ - $r = q("SELECT * from `item`,`contact` WHERE + $r = q("SELECT * from `item`,`contact` WHERE `item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';", dbesc($item['parent-uri'])); if(count($r)==0) return; $obj=$r[0]; - - $author = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]'; + + $author = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]'; $objauthor = '[url=' . $obj['author-link'] . ']' . $obj['author-name'] . '[/url]'; - + switch($obj['verb']){ case ACTIVITY_POST: switch ($obj['object-type']){ @@ -112,15 +123,15 @@ function localize_item(&$item){ default: if($obj['resource-id']){ $post_type = t('photo'); - $m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m); + $m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m); $rr['plink'] = $m[1]; } else { $post_type = t('status'); } } - + $plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]'; - + switch($item['verb']){ case ACTIVITY_LIKE : $bodyverb = t('%1$s likes %2$s\'s %3$s'); @@ -130,7 +141,7 @@ function localize_item(&$item){ break; } $item['body'] = sprintf($bodyverb, $author, $objauthor, $plink); - + } if ($item['verb']=== ACTIVITY_FRIEND){ @@ -138,12 +149,12 @@ function localize_item(&$item){ $Aname = $item['author-name']; $Alink = $item['author-link']; - + $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - + $obj = parse_xml_string($xmlhead.$item['object']); $links = parse_xml_string($xmlhead."".unxmlify($obj->link).""); - + $Bname = $obj->title; $Blink = ""; $Bphoto = ""; foreach ($links->link as $l){ @@ -152,9 +163,9 @@ function localize_item(&$item){ case "alternate": $Blink = $atts['href']; case "photo": $Bphoto = $atts['href']; } - + } - + $A = '[url=' . zrl($Alink) . ']' . $Aname . '[/url]'; $B = '[url=' . zrl($Blink) . ']' . $Bname . '[/url]'; if ($Bphoto!="") $Bphoto = '[url=' . zrl($Blink) . '][img]' . $Bphoto . '[/img][/url]'; @@ -170,12 +181,12 @@ function localize_item(&$item){ $Aname = $item['author-name']; $Alink = $item['author-link']; - + $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - + $obj = parse_xml_string($xmlhead.$item['object']); $links = parse_xml_string($xmlhead."".unxmlify($obj->link).""); - + $Bname = $obj->title; $Blink = ""; $Bphoto = ""; foreach ($links->link as $l){ @@ -184,9 +195,9 @@ function localize_item(&$item){ case "alternate": $Blink = $atts['href']; case "photo": $Bphoto = $atts['href']; } - + } - + $A = '[url=' . zrl($Alink) . ']' . $Aname . '[/url]'; $B = '[url=' . zrl($Blink) . ']' . $Bname . '[/url]'; if ($Bphoto!="") $Bphoto = '[url=' . zrl($Blink) . '][img=80x80]' . $Bphoto . '[/img][/url]'; @@ -205,16 +216,30 @@ function localize_item(&$item){ $item['body'] = sprintf($txt, $A, $B). "\n\n\n" . $Bphoto; } - if ($item['verb']===ACTIVITY_TAG){ - $r = q("SELECT * from `item`,`contact` WHERE + if (stristr($item['verb'],ACTIVITY_MOOD)) { + $verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1)); + if(! $verb) + return; + + $Aname = $item['author-name']; + $Alink = $item['author-link']; + $A = '[url=' . zrl($Alink) . ']' . $Aname . '[/url]'; + + $txt = t('%1$s is currently %2$s'); + + $item['body'] = sprintf($txt, $A, t($verb)); + } + + if ($item['verb']===ACTIVITY_TAG){ + $r = q("SELECT * from `item`,`contact` WHERE `item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';", dbesc($item['parent-uri'])); if(count($r)==0) return; $obj=$r[0]; - - $author = '[url=' . zrl($item['author-link']) . ']' . $item['author-name'] . '[/url]'; + + $author = '[url=' . zrl($item['author-link']) . ']' . $item['author-name'] . '[/url]'; $objauthor = '[url=' . zrl($obj['author-link']) . ']' . $obj['author-name'] . '[/url]'; - + switch($obj['verb']){ case ACTIVITY_POST: switch ($obj['object-type']){ @@ -228,19 +253,19 @@ function localize_item(&$item){ default: if($obj['resource-id']){ $post_type = t('photo'); - $m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m); + $m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m); $rr['plink'] = $m[1]; } else { $post_type = t('status'); } } $plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]'; - + $parsedobj = parse_xml_string($xmlhead.$item['object']); - + $tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content); $item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag ); - + } if ($item['verb']=== ACTIVITY_FAVORITE){ @@ -249,9 +274,9 @@ function localize_item(&$item){ $Aname = $item['author-name']; $Alink = $item['author-link']; - + $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - + $obj = parse_xml_string($xmlhead.$item['object']); if(strlen($obj->id)) { $r = q("select * from item where uri = '%s' and uid = %d limit 1", @@ -279,10 +304,10 @@ function localize_item(&$item){ } // add zrl's to public images - if(preg_match_all('/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is',$item['body'],$matches,PREG_SET_ORDER)) { - foreach($matches as $mtch) { - $item['body'] = str_replace($mtch[0],'[url=' . zrl($mtch[1] . '/photos/' . $mtch[2] . '/image/' . $mtch[3] ,true) . '][img' . $mtch[4] . ']h' . $mtch[5] . '[/img][/url]',$item['body']); - } + $photo_pattern = "/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is"; + if(preg_match($photo_pattern,$item['body'])) { + $photo_replace = '[url=' . zrl('$1' . '/photos/' . '$2' . '/image/' . '$3' ,true) . '][img' . '$4' . ']h' . '$5' . '[/img][/url]'; + $item['body'] = bb_tag_preg_replace($photo_pattern, $photo_replace, 'url', $item['body']); } // add sparkle links to appropriate permalinks @@ -293,7 +318,7 @@ function localize_item(&$item){ $y = best_link_url($item,$sparkle,true); if(strstr($y,'/redir/')) $item['plink'] = $y . '?f=&url=' . $item['plink']; - } + } @@ -307,6 +332,9 @@ function count_descendants($item) { if($total > 0) { foreach($item['children'] as $child) { + if($child['verb'] === ACTIVITY_LIKE || $child['verb'] === ACTIVITY_DISLIKE) { + $total --; + } $total += count_descendants($child); } } @@ -318,28 +346,41 @@ function count_descendants($item) { * Recursively prepare a thread for HTML */ -function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $profile_owner, $thread_level=1) { +function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $profile_owner, $alike, $dlike, $previewing, $thread_level=1) { $result = array(); $wall_template = 'wall_thread.tpl'; $wallwall_template = 'wallwall_thread.tpl'; $items_seen = 0; $nb_items = count($items); - + $total_children = $nb_items; - + foreach($items as $item) { - // prevent private email reply to public conversation from leaking. if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { // Don't count it as a visible item $nb_items--; + $total_children --; + } + if($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE) { + $nb_items --; + $total_children --; + + } + } + + foreach($items as $item) { + // prevent private email reply to public conversation from leaking. + if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { + continue; + } + + if($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE) { continue; } - + $items_seen++; - - $alike = array(); - $dlike = array(); + $comment = ''; $template = $wall_template; $commentww = ''; @@ -353,14 +394,36 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $thumb = $item['thumb']; $indent = ''; $osparkle = ''; + $visiting = false; $lastcollapsed = false; $firstcollapsed = false; $total_children += count_descendants($item); $toplevelpost = (($item['id'] == $item['parent']) ? true : false); + + + if($item['uid'] == local_user()) + $dropping = true; + elseif(is_array($_SESSION['remote'])) { + foreach($_SESSION['remote'] as $visitor) { + if($visitor['cid'] == $item['contact-id']) { + $dropping = true; + $visiting = true; + break; + } + } + } + $item_writeable = (($item['writable'] || $item['self']) ? true : false); + + // This will allow us to comment on wall-to-wall items owned by our friends + // and community forums even if somebody else wrote the post. + + if($visiting && $mode == 'profile') + $item_writeable = true; + $show_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); - $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); @@ -370,15 +433,13 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit")); else $edpost = false; - if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user())) - $dropping = true; $drop = array( 'dropping' => $dropping, - 'select' => t('Select'), + 'select' => t('Select'), 'delete' => t('Delete'), ); - + $filer = (($profile_owner == local_user()) ? t("save to folder") : false); $diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true); @@ -393,7 +454,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr if($sp) $sparkle = ' sparkle'; else - $profile_link = zrl($profile_link); + $profile_link = zrl($profile_link); $normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']); if(($normalised != 'mailbox') && (x($a->contacts,$normalised))) @@ -410,9 +471,6 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $tag = trim($tag); if ($tag!="") $tags[] = bbcode($tag); } - - like_puller($a,$item,$alike,'like'); - like_puller($a,$item,$dlike,'dislike'); $like = ((x($alike,$item['uri'])) ? format_like($alike[$item['uri']],$alike[$item['uri'] . '-l'],'like',$item['uri']) : ''); $dislike = ((x($dlike,$item['uri'])) ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : ''); @@ -429,39 +487,39 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $owner_photo = $a->page_contact['thumb']; $owner_name = $a->page_contact['name']; $template = $wallwall_template; - $commentww = 'ww'; - } - } - else if($item['owner-link']) { - - $owner_linkmatch = (($item['owner-link']) && link_compare($item['owner-link'],$item['author-link'])); - $alias_linkmatch = (($item['alias']) && link_compare($item['alias'],$item['author-link'])); - $owner_namematch = (($item['owner-name']) && $item['owner-name'] == $item['author-name']); - 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 - // 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. - - // But it could be somebody else with the same name. It just isn't highly likely. - - - $owner_url = $item['owner-link']; - $owner_photo = $item['owner-avatar']; - $owner_name = $item['owner-name']; - $template = $wallwall_template; $commentww = 'ww'; - // If it is our contact, use a friendly redirect link - if((link_compare($item['owner-link'],$item['url'])) - && ($item['network'] === NETWORK_DFRN)) { - $owner_url = $redirect_url; - $osparkle = ' sparkle'; + } + else if($item['owner-link']) { + + $owner_linkmatch = (($item['owner-link']) && link_compare($item['owner-link'],$item['author-link'])); + $alias_linkmatch = (($item['alias']) && link_compare($item['alias'],$item['author-link'])); + $owner_namematch = (($item['owner-name']) && $item['owner-name'] == $item['author-name']); + 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 + // 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. + + // But it could be somebody else with the same name. It just isn't highly likely. + + + $owner_url = $item['owner-link']; + $owner_photo = $item['owner-avatar']; + $owner_name = $item['owner-name']; + $template = $wallwall_template; + $commentww = 'ww'; + // If it is our contact, use a friendly redirect link + if((link_compare($item['owner-link'],$item['url'])) + && ($item['network'] === NETWORK_DFRN)) { + $owner_url = $redirect_url; + $osparkle = ' sparkle'; + } + else + $owner_url = zrl($owner_url); } - else - $owner_url = zrl($owner_url); } } if($profile_owner == local_user()) { @@ -495,6 +553,13 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr } } + if(intval(get_config('system','thread_allow')) && $a->theme_thread_allow) { + $comments_threaded = true; + } + else { + $comments_threaded = false; + } + if($page_writeable) { $buttons = array( 'like' => array( t("I like this \x28toggle\x29"), t("like")), @@ -511,7 +576,8 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $qcomment = (($qc) ? explode("\n",$qc) : null); } $comment = replace_macros($cmnt_tpl,array( - '$return_path' => '', + '$return_path' => '', + '$threaded' => $comments_threaded, '$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''), '$type' => (($mode === 'profile') ? 'wall-comment' : 'net-comment'), '$id' => $item['item_id'], @@ -532,6 +598,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr '$edurl' => t('Link'), '$edvideo' => t('Video'), '$preview' => t('Preview'), + '$indent' => $indent, '$sourceapp' => t($a->sourcename), '$ww' => (($mode === 'network') ? $commentww : '') )); @@ -551,7 +618,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr 'comment_lastcollapsed' => $lastcollapsed, // template to use to render item (wall, walltowall, search) 'template' => $template, - + 'type' => implode("",array_slice(explode("/",$item['verb']),-1)), 'tags' => $tags, 'body' => template_escape($body), @@ -569,6 +636,8 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr 'osparkle' => $osparkle, 'sparkle' => $sparkle, 'title' => template_escape($item['title']), + 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), + 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), 'lock' => $lock, 'location' => template_escape($location), @@ -602,7 +671,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $item_result['children'] = array(); if(count($item['children'])) { - $item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner, ($thread_level + 1)); + $item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner, $alike, $dlike, $previewing, ($thread_level + 1)); } $item_result['private'] = $item['private']; $item_result['toplevel'] = ($toplevelpost ? 'toplevel_item' : ''); @@ -610,7 +679,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr /* * I don't like this very much... */ - if(get_config('system','thread_allow')) { + if(get_config('system','thread_allow') && $a->theme_thread_allow) { $item_result['flatten'] = false; $item_result['threaded'] = true; } @@ -621,7 +690,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $item_result['comment'] = false; } } - + $result[] = $item_result; } @@ -634,7 +703,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr * - Sequential or unthreaded ("New Item View" or search results) * - conversation view * The $mode parameter decides between the various renderings and also - * figures out how to determine page owner and other contextual items + * figures out how to determine page owner and other contextual items * that are based on unique features of the calling module. * */ @@ -699,19 +768,19 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $alike = array(); $dlike = array(); - - + + // array with html for each thread (parent+comments) $threads = array(); $threadsid = -1; $page_template = get_markup_template("conversation.tpl"); - + if($items && count($items)) { if($mode === 'network-new' || $mode === 'search' || $mode === 'community') { - // "New Item View" on network page or search page results + // "New Item View" on network page or search page results // - just loop through the items and format them minimally for display //$tpl = get_markup_template('search_item.tpl'); @@ -727,18 +796,18 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $sparkle = ''; if($mode === 'search' || $mode === 'community') { - if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) + if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) && ($item['id'] != $item['parent'])) continue; $nickname = $item['nickname']; } else $nickname = $a->user['nickname']; - + // prevent private email from leaking. if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) continue; - + $profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']); if($item['author-link'] && (! $item['author-name'])) $profile_name = $item['author-link']; @@ -752,7 +821,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { if($sp) $sparkle = ' sparkle'; else - $profile_link = zrl($profile_link); + $profile_link = zrl($profile_link); $normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']); if(($normalised != 'mailbox') && (x($a->contacts[$normalised]))) @@ -774,19 +843,19 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $drop = array( 'dropping' => $dropping, - 'select' => t('Select'), + 'select' => t('Select'), 'delete' => t('Delete'), ); $star = false; $isstarred = "unstarred"; - + $lock = false; $likebuttons = false; $shareable = false; $body = prepare_body($item,true); - + //$tmp_item = replace_macros($tpl,array( $tmp_item = array( 'template' => $tpl, @@ -801,6 +870,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { 'title' => template_escape($item['title']), 'body' => template_escape($body), 'text' => strip_tags(template_escape($body)), + 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), 'location' => template_escape($location), 'indent' => '', @@ -836,21 +906,44 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { // Normal View $page_template = get_markup_template("threaded_conversation.tpl"); + require_once('object/Conversation.php'); + require_once('object/Item.php'); + + $conv = new Conversation($mode, $preview); + // get all the topmost parents - // this shouldn't be needed, as we should have only them in ou array + // 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) { + + // Can we put this after the visibility check? + like_puller($a,$item,$alike,'like'); + like_puller($a,$item,$dlike,'dislike'); + + // Only add what is visible + if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { + continue; + } + if($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE) { + continue; + } + if($item['id'] == $item['parent']) { - $threads[] = $item; + $item_object = new Item($item); + $conv->add_thread($item_object); } } - $threads = prepare_threads_body($a, $threads, $cmnt_tpl, $page_writeable, $mode, $profile_owner); + $threads = $conv->get_template_data($alike, $dlike); + if(!$threads) { + logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG); + $threads = array(); + } } } - + $o = replace_macros($page_template, array( '$baseurl' => $a->get_baseurl($ssl_state), '$mode' => $mode, @@ -911,7 +1004,7 @@ function item_photo_menu($item){ $posts_link=""; $sparkle = false; - $profile_link = best_link_url($item,$sparkle,$ssl_state); + $profile_link = best_link_url($item,$sparkle,$ssl_state); if($profile_link === 'mailbox') $profile_link = ''; @@ -927,7 +1020,7 @@ function item_photo_menu($item){ $profile_link = zrl($profile_link); if(local_user() && local_user() == $item['uid'] && link_compare($item['url'],$item['author-link'])) { $cid = $item['contact-id']; - } + } else { $cid = 0; } @@ -953,18 +1046,18 @@ function item_photo_menu($item){ t("View Status") => $status_link, t("View Profile") => $profile_link, t("View Photos") => $photos_link, - t("Network Posts") => $posts_link, + t("Network Posts") => $posts_link, t("Edit Contact") => $contact_url, t("Send PM") => $pm_url, t("Poke") => $poke_link ); - - + + $args = array('item' => $item, 'menu' => $menu); - + call_hooks('item_photo_menu', $args); - $menu = $args['menu']; + $menu = $args['menu']; $o = ""; foreach($menu as $k=>$v){ @@ -996,7 +1089,7 @@ function like_puller($a,$item,&$arr,$mode) { $arr[$item['thr-parent'] . '-l'] = array(); if(! isset($arr[$item['thr-parent']])) $arr[$item['thr-parent']] = 1; - else + else $arr[$item['thr-parent']] ++; $arr[$item['thr-parent'] . '-l'][] = '' . $item['author-name'] . ''; } @@ -1017,10 +1110,10 @@ function format_like($cnt,$arr,$type,$id) { $o .= (($type === 'like') ? sprintf( t('%s likes this.'), $arr[0]) : sprintf( t('%s doesn\'t like this.'), $arr[0])) . EOL ; else { $spanatts = 'class="fakelink" onclick="openClose(\'' . $type . 'list-' . $id . '\');"'; - $o .= (($type === 'like') ? + $o .= (($type === 'like') ? sprintf( t('%2$d people like this.'), $spanatts, $cnt) - : - sprintf( t('%2$d people don\'t like this.'), $spanatts, $cnt) ); + : + sprintf( t('%2$d people don\'t like this.'), $spanatts, $cnt) ); $o .= EOL ; $total = count($arr); if($total >= MAX_LIKERS) @@ -1040,7 +1133,7 @@ function format_like($cnt,$arr,$type,$id) { function status_editor($a,$x, $notes_cid = 0, $popup=false) { $o = ''; - + $geotag = (($x['allow_location']) ? get_markup_template('jot_geotag.tpl') : ''); $plaintext = false; @@ -1082,7 +1175,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { $tpl = get_markup_template("jot.tpl"); - + $jotplugins = ''; $jotnets = ''; @@ -1113,7 +1206,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { if($notes_cid) $jotnets .= ''; - $tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins)); + $tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins)); $o .= replace_macros($tpl,array( '$return_path' => $a->query_string, @@ -1162,7 +1255,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { if ($popup==true){ $o = ''; - + } return $o; @@ -1178,7 +1271,7 @@ function get_item_children($arr, $parent) { $thr_parent = $item['thr-parent']; if($thr_parent == '') $thr_parent = $item['parent-uri']; - + if($thr_parent == $parent['uri']) { $item['children'] = get_item_children($arr, $item); $children[] = $item; @@ -1229,7 +1322,7 @@ function conv_sort($arr,$order) { usort($parents,'sort_thr_commented'); if(count($parents)) - foreach($parents as $i=>$_x) + foreach($parents as $i=>$_x) $parents[$i]['children'] = get_item_children($arr, $_x); /*foreach($arr as $x) { @@ -1247,7 +1340,7 @@ function conv_sort($arr,$order) { usort($y,'sort_thr_created_rev'); $parents[$k]['children'] = $y;*/ } - } + } } $ret = array();