当前位置: 首页>>代码示例>>PHP>>正文


PHP localize_item函数代码示例

本文整理汇总了PHP中localize_item函数的典型用法代码示例。如果您正苦于以下问题:PHP localize_item函数的具体用法?PHP localize_item怎么用?PHP localize_item使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了localize_item函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: format_notification

/** @file */
function format_notification($item)
{
    $ret = '';
    require_once 'include/conversation.php';
    // Call localize_item with the "brief" flag to get a one line status for activities.
    // This should set $item['localized'] to indicate we have a brief summary.
    localize_item($item);
    if ($item_localize) {
        $itemem_text = $item['localize'];
    } else {
        $itemem_text = $item['item_thread_top'] ? t('created a new post') : sprintf(t('commented on %s\'s post'), $item['owner']['xchan_name']);
    }
    // convert this logic into a json array just like the system notifications
    return array('notify_link' => $item['llink'], 'name' => $item['author']['xchan_name'], 'url' => $item['author']['xchan_url'], 'photo' => $item['author']['xchan_photo_s'], 'when' => relative_date($item['created']), 'class' => intval($item['item_unseen']) ? 'notify-unseen' : 'notify-seen', 'message' => strip_tags(bbcode($itemem_text)));
}
开发者ID:msooon,项目名称:hubzilla,代码行数:16,代码来源:notify.php

示例2: api_format_items

function api_format_items($r, $user_info)
{
    //logger('api_format_items: ' . print_r($r,true));
    //logger('api_format_items: ' . print_r($user_info,true));
    $a = get_app();
    $ret = array();
    if (!$r) {
        return $ret;
    }
    foreach ($r as $item) {
        localize_item($item);
        $status_user = $item['author_xchan'] == $user_info['guid'] ? $user_info : api_item_get_user($a, $item);
        if (array_key_exists('status', $status_user)) {
            unset($status_user['status']);
        }
        if ($item['parent'] != $item['id']) {
            $r = q("select id from item where parent= %d and id < %d order by id desc limit 1", intval($item['parent']), intval($item['id']));
            if ($r) {
                $in_reply_to_status_id = $r[0]['id'];
            } else {
                $in_reply_to_status_id = $item['parent'];
            }
            xchan_query($r, true);
            $in_reply_to_screen_name = $r[0]['author']['xchan_name'];
            $in_reply_to_user_id = $r[0]['author']['abook_id'];
        } else {
            $in_reply_to_screen_name = '';
            $in_reply_to_user_id = 0;
            $in_reply_to_status_id = 0;
        }
        unobscure($item);
        // Workaround for ostatus messages where the title is identically to the body
        $statusbody = trim(html2plain(prepare_text($item['body'], $item['mimetype']), 0));
        $statustitle = trim($item['title']);
        if ($statustitle != '' and strpos($statusbody, $statustitle) !== false) {
            $statustext = trim($statusbody);
        } else {
            $statustext = trim($statustitle . "\n\n" . $statusbody);
        }
        $status = array('text' => $statustext, 'truncated' => False, 'created_at' => api_date($item['created']), 'in_reply_to_status_id' => $in_reply_to_status_id, 'source' => $item['app'] ? $item['app'] : 'web', 'id' => intval($item['id']), 'in_reply_to_user_id' => $in_reply_to_user_id, 'in_reply_to_screen_name' => $in_reply_to_screen_name, 'geo' => '', 'favorited' => intval($item['item_starred']) ? true : false, 'user' => $status_user, 'statusnet_html' => trim(prepare_text($item['body'], $item['mimetype'])), 'statusnet_conversation_id' => $item['parent']);
        // Seesmic doesn't like the following content
        if ($_SERVER['HTTP_USER_AGENT'] != 'Seesmic') {
            $status2 = array('updated' => api_date($item['edited']), 'published' => api_date($item['created']), 'message_id' => $item['mid'], 'url' => $item['plink'], 'coordinates' => $item['coord'], 'place' => $item['location'], 'contributors' => '', 'annotations' => '', 'entities' => '', 'objecttype' => $item['obj_type'] ? $item['obj_type'] : ACTIVITY_OBJ_NOTE, 'verb' => $item['verb'] ? $item['verb'] : ACTIVITY_POST, 'self' => $a->get_baseurl() . "/api/statuses/show/" . $item['id'] . "." . $type, 'edit' => $a->get_baseurl() . "/api/statuses/show/" . $item['id'] . "." . $type);
            $status = array_merge($status, $status2);
        }
        $ret[] = $status;
    }
    return $ret;
}
开发者ID:msooon,项目名称:hubzilla,代码行数:49,代码来源:api.php

示例3: get_template_data


//.........这里部分代码省略.........
      * Maybe we should establish a way to be notified about conversation changes
      */
     $this->check_wall_to_wall();
     if ($this->is_toplevel()) {
         // FIXME check this permission
         if ($conv->get_profile_owner() == local_channel() && !array_key_exists('real_uid', $item)) {
             // FIXME we don't need all this stuff, some can be done in the template
             $star = array('do' => t("Add Star"), 'undo' => t("Remove Star"), 'toggle' => t("Toggle Star Status"), 'classdo' => intval($item['item_starred']) ? "hidden" : "", 'classundo' => intval($item['item_starred']) ? "" : "hidden", 'isstarred' => intval($item['item_starred']) ? "starred icon-star" : "unstarred icon-star-empty", 'starred' => t('starred'));
         }
     } else {
         $indent = 'comment';
     }
     $verified = intval($item['item_verified']) ? t('Message signature validated') : '';
     $forged = $item['sig'] && !intval($item['item_verified']) ? t('Message signature incorrect') : '';
     $unverified = '';
     // (($this->is_wall_to_wall() && (! intval($item['item_verified']))) ? t('Message cannot be verified') : '');
     // FIXME - check this permission
     if ($conv->get_profile_owner() == local_channel()) {
         $tagger = array('tagit' => t("Add Tag"), 'classtagger' => "");
     }
     $has_bookmarks = false;
     if (is_array($item['term'])) {
         foreach ($item['term'] as $t) {
             if ($t['type'] == TERM_BOOKMARK) {
                 $has_bookmarks = true;
             }
         }
     }
     $has_event = false;
     if ($item['obj_type'] === ACTIVITY_OBJ_EVENT && $conv->get_profile_owner() == local_channel()) {
         $has_event = true;
     }
     if ($this->is_commentable()) {
         $like = array(t("I like this (toggle)"), t("like"));
         $dislike = array(t("I don't like this (toggle)"), t("dislike"));
     }
     if ($shareable) {
         $share = array(t('Share This'), t('share'));
     }
     $dreport = '';
     $keep_reports = intval(get_config('system', 'expire_delivery_reports'));
     if ($keep_reports === 0) {
         $keep_reports = 30;
     }
     if (!get_config('system', 'disable_dreport') && strcmp(datetime_convert('UTC', 'UTC', $item['created']), datetime_convert('UTC', 'UTC', "now - {$keep_reports} days")) > 0) {
         $dreport = t('Delivery Report');
     }
     if (strcmp(datetime_convert('UTC', 'UTC', $item['created']), datetime_convert('UTC', 'UTC', 'now - 12 hours')) > 0) {
         $indent .= ' shiny';
     }
     localize_item($item);
     $body = prepare_body($item, true);
     // $viewthread (below) is only valid in list mode. If this is a channel page, build the thread viewing link
     // since we can't depend on llink or plink pointing to the right local location.
     $owner_address = substr($item['owner']['xchan_addr'], 0, strpos($item['owner']['xchan_addr'], '@'));
     $viewthread = $item['llink'];
     if ($conv->get_mode() === 'channel') {
         $viewthread = z_root() . '/channel/' . $owner_address . '?f=&mid=' . $item['mid'];
     }
     $comment_count_txt = sprintf(tt('%d comment', '%d comments', $total_children), $total_children);
     $list_unseen_txt = $unseen_comments ? sprintf('%d unseen', $unseen_comments) : '';
     $children = $this->get_children();
     $has_tags = $body['tags'] || $body['categories'] || $body['mentions'] || $body['attachments'] || $body['folders'] ? true : false;
     $tmp_item = array('template' => $this->get_template(), 'mode' => $mode, 'type' => implode("", array_slice(explode("/", $item['verb']), -1)), 'body' => $body['html'], 'tags' => $body['tags'], 'categories' => $body['categories'], 'mentions' => $body['mentions'], 'attachments' => $body['attachments'], 'folders' => $body['folders'], 'text' => strip_tags($body['html']), 'id' => $this->get_id(), 'mid' => $item['mid'], 'isevent' => $isevent, 'attend' => $attend, 'consensus' => $consensus, 'conlabels' => $conlabels, 'canvote' => $canvote, 'linktitle' => sprintf(t('View %s\'s profile - %s'), $profile_name, $item['author']['xchan_addr']), 'olinktitle' => sprintf(t('View %s\'s profile - %s'), $this->get_owner_name(), $item['owner']['xchan_addr']), 'llink' => $item['llink'], 'viewthread' => $viewthread, 'to' => t('to'), 'via' => t('via'), 'wall' => t('Wall-to-Wall'), 'vwall' => t('via Wall-To-Wall:'), 'profile_url' => $profile_link, 'item_photo_menu' => item_photo_menu($item), 'dreport' => $dreport, 'name' => $profile_name, 'thumb' => $profile_avatar, 'osparkle' => $osparkle, 'sparkle' => $sparkle, 'title' => $item['title'], 'title_tosource' => get_pconfig($conv->get_profile_owner(), 'system', 'title_tosource'), 'ago' => relative_date($item['created']), 'app' => $item['app'], 'str_app' => sprintf(t('from %s'), $item['app']), 'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'), 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), 'editedtime' => $item['edited'] != $item['created'] ? sprintf(t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : '', 'expiretime' => $item['expires'] !== NULL_DATE ? sprintf(t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')) : '', 'lock' => $lock, 'verified' => $verified, 'unverified' => $unverified, 'forged' => $forged, 'location' => $location, 'indent' => $indent, 'owner_url' => $this->get_owner_url(), 'owner_photo' => $this->get_owner_photo(), 'owner_name' => $this->get_owner_name(), 'photo' => $body['photo'], 'event' => $body['event'], 'has_tags' => $has_tags, 'like' => $like, 'dislike' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike : '', 'share' => $share, 'rawmid' => $item['mid'], 'plink' => get_plink($item), 'edpost' => $edpost, 'star' => feature_enabled($conv->get_profile_owner(), 'star_posts') ? $star : '', 'tagger' => feature_enabled($conv->get_profile_owner(), 'commtag') ? $tagger : '', 'filer' => feature_enabled($conv->get_profile_owner(), 'filing') ? $filer : '', 'bookmark' => $conv->get_profile_owner() == local_channel() && local_channel() && $has_bookmarks ? t('Save Bookmarks') : '', 'addtocal' => $has_event ? t('Add to Calendar') : '', 'drop' => $drop, 'multidrop' => feature_enabled($conv->get_profile_owner(), 'multi_delete') ? $multidrop : '', 'unseen_comments' => $unseen_comments, 'comment_count' => $total_children, 'comment_count_txt' => $comment_count_txt, 'list_unseen_txt' => $list_unseen_txt, 'markseen' => t('Mark all seen'), 'responses' => $responses, 'like_count' => $like_count, 'like_list' => $like_list, 'like_list_part' => $like_list_part, 'like_button_label' => $like_button_label, 'like_modal_title' => t('Likes', 'noun'), 'dislike_modal_title' => t('Dislikes', 'noun'), 'dislike_count' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike_count : '', 'dislike_list' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike_list : '', 'dislike_list_part' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike_list_part : '', 'dislike_button_label' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike_button_label : '', 'modal_dismiss' => t('Close'), 'showlike' => $showlike, 'showdislike' => $showdislike, 'comment' => $this->get_comment_box($indent), 'previewing' => $conv->is_preview() ? ' preview ' : '', 'wait' => t('Please wait'), 'thread_level' => $thread_level);
     $arr = array('item' => $item, 'output' => $tmp_item);
     call_hooks('display_item', $arr);
     $result = $arr['output'];
     $result['children'] = array();
     $nb_children = count($children);
     $visible_comments = get_config('system', 'expanded_comments');
     if ($visible_comments === false) {
         $visible_comments = 3;
     }
     if ($this->get_display_mode() === 'normal' && $nb_children > 0) {
         foreach ($children as $child) {
             $result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1);
         }
         // Collapse
         if ($nb_children > $visible_comments || $thread_level > 1) {
             $result['children'][0]['comment_firstcollapsed'] = true;
             $result['children'][0]['num_comments'] = $comment_count_txt;
             $result['children'][0]['hide_text'] = t('[+] show all');
             if ($thread_level > 1) {
                 $result['children'][$nb_children - 1]['comment_lastcollapsed'] = true;
             } else {
                 $result['children'][$nb_children - ($visible_comments + 1)]['comment_lastcollapsed'] = true;
             }
         }
     }
     $result['private'] = $item['item_private'];
     $result['toplevel'] = $this->is_toplevel() ? 'toplevel_item' : '';
     if ($this->is_threaded()) {
         $result['flatten'] = false;
         $result['threaded'] = true;
     } else {
         $result['flatten'] = true;
         $result['threaded'] = false;
     }
     return $result;
 }
开发者ID:royalterra,项目名称:hubzilla,代码行数:101,代码来源:ItemObject.php

示例4: conversation


//.........这里部分代码省略.........
                     }
                     $tags[] = $prefix . "<a href=\"" . $tag["url"] . "\" target=\"_blank\">" . $tag["term"] . "</a>";
                 }
                 /*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') {
                     $profile_link = '';
                 }
                 if ($sp) {
                     $sparkle = ' sparkle';
                 } else {
                     $profile_link = zrl($profile_link);
                 }
                 $normalised = normalise_link(strlen($item['author-link']) ? $item['author-link'] : $item['url']);
                 if ($normalised != 'mailbox' && x($a->contacts[$normalised])) {
                     $profile_avatar = $a->contacts[$normalised]['thumb'];
                 } else {
                     $profile_avatar = strlen($item['author-avatar']) ? $a->get_cached_avatar_image($item['author-avatar']) : $item['thumb'];
                 }
                 $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => '');
                 call_hooks('render_location', $locate);
                 $location = strlen($locate['html']) ? $locate['html'] : render_location_google($locate);
                 localize_item($item);
                 if ($mode === 'network-new') {
                     $dropping = true;
                 } else {
                     $dropping = false;
                 }
                 $drop = array('dropping' => $dropping, 'pagedrop' => $page_dropping, 'select' => t('Select'), 'delete' => t('Delete'));
                 $star = false;
                 $isstarred = "unstarred";
                 $lock = false;
                 $likebuttons = false;
                 $shareable = false;
                 $body = prepare_body($item, true, $preview);
                 list($categories, $folders) = get_cats_and_terms($item);
                 if ($a->theme['template_engine'] === 'internal') {
                     $profile_name_e = template_escape($profile_name);
                     $item['title_e'] = template_escape($item['title']);
                     $body_e = template_escape($body);
                     $tags_e = template_escape($tags);
                     $hashtags_e = template_escape($hashtags);
                     $mentions_e = template_escape($mentions);
                     $location_e = template_escape($location);
                     $owner_name_e = template_escape($owner_name);
                 } else {
                     $profile_name_e = $profile_name;
                     $item['title_e'] = $item['title'];
                     $body_e = $body;
                     $tags_e = $tags;
                     $hashtags_e = $hashtags;
                     $mentions_e = $mentions;
                     $location_e = $location;
                     $owner_name_e = $owner_name;
                 }
开发者ID:jzacman,项目名称:friendica,代码行数:67,代码来源:conversation.php

示例5: conversation

 function conversation(&$a, $items, $mode, $update, $preview = false)
 {
     require_once 'bbcode.php';
     $ssl_state = local_user() ? true : false;
     $profile_owner = 0;
     $page_writeable = false;
     $previewing = $preview ? ' preview ' : '';
     if ($mode === 'network') {
         $profile_owner = local_user();
         $page_writeable = true;
     }
     if ($mode === 'profile') {
         $profile_owner = $a->profile['profile_uid'];
         $page_writeable = can_write_wall($a, $profile_owner);
     }
     if ($mode === 'notes') {
         $profile_owner = local_user();
         $page_writeable = true;
     }
     if ($mode === 'display') {
         $profile_owner = $a->profile['uid'];
         $page_writeable = can_write_wall($a, $profile_owner);
     }
     if ($mode === 'community') {
         $profile_owner = 0;
         $page_writeable = false;
     }
     if ($update) {
         $return_url = $_SESSION['return_url'];
     } else {
         $return_url = $_SESSION['return_url'] = $a->query_string;
     }
     load_contact_links(local_user());
     $cb = array('items' => $items, 'mode' => $mode, 'update' => $update, 'preview' => $preview);
     call_hooks('conversation_start', $cb);
     $items = $cb['items'];
     $cmnt_tpl = get_markup_template('comment_item.tpl');
     $tpl = 'wall_item.tpl';
     $wallwall = 'wallwall_item.tpl';
     $hide_comments_tpl = get_markup_template('hide_comments.tpl');
     $alike = array();
     $dlike = array();
     // array with html for each thread (parent+comments)
     $threads = array();
     $threadsid = -1;
     if ($items && count($items)) {
         if ($mode === 'network-new' || $mode === 'search' || $mode === 'community') {
             // "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');
             $tpl = 'search_item.tpl';
             foreach ($items as $item) {
                 $threadsid++;
                 $comment = '';
                 $owner_url = '';
                 $owner_photo = '';
                 $owner_name = '';
                 $sparkle = '';
                 if ($mode === 'search' || $mode === 'community') {
                     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'];
                 }
                 $sp = false;
                 $profile_link = best_link_url($item, $sp);
                 if ($profile_link === 'mailbox') {
                     $profile_link = '';
                 }
                 if ($sp) {
                     $sparkle = ' sparkle';
                 } else {
                     $profile_link = zrl($profile_link);
                 }
                 $normalised = normalise_link(strlen($item['author-link']) ? $item['author-link'] : $item['url']);
                 if ($normalised != 'mailbox' && x($a->contacts[$normalised])) {
                     $profile_avatar = $a->contacts[$normalised]['thumb'];
                 } else {
                     $profile_avatar = strlen($item['author-avatar']) ? $item['author-avatar'] : $item['thumb'];
                 }
                 $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => '');
                 call_hooks('render_location', $locate);
                 $location = strlen($locate['html']) ? $locate['html'] : render_location_google($locate);
                 localize_item($item);
                 if ($mode === 'network-new') {
                     $dropping = true;
                 } else {
                     $dropping = false;
                 }
                 $drop = array('dropping' => $dropping, 'select' => t('Select'), 'delete' => t('Delete'));
//.........这里部分代码省略.........
开发者ID:robhell,项目名称:friendica,代码行数:101,代码来源:conversation.php

示例6: conversation


//.........这里部分代码省略.........
                $threadsid++;
                $comment = '';
                $owner_url = '';
                $owner_photo = '';
                $owner_name = '';
                $sparkle = '';
                if ($mode === 'search' || $mode === 'community') {
                    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'];
                }
                $profile_name = strlen($item['author-name']) ? $item['author-name'] : $item['name'];
                if ($item['author-link'] && !$item['author-name']) {
                    $profile_name = $item['author-link'];
                }
                $tags = array();
                $hashtags = array();
                $mentions = array();
                $sp = false;
                $profile_link = best_link_url($item, $sp);
                if ($sp) {
                    $sparkle = ' sparkle';
                } else {
                    $profile_link = zid($profile_link);
                }
                $normalised = normalise_link(strlen($item['author-link']) ? $item['author-link'] : $item['url']);
                $profile_name = $item['author']['xchan_name'];
                $profile_link = $item['author']['xchan_url'];
                $profile_avatar = $item['author']['xchan_photo_m'];
                $location = format_location($item);
                localize_item($item);
                if ($mode === 'network-new') {
                    $dropping = true;
                } else {
                    $dropping = false;
                }
                $drop = array('pagedropping' => $page_dropping, 'dropping' => $dropping, 'select' => t('Select'), 'delete' => t('Delete'));
                $star = false;
                $isstarred = "unstarred icon-star-empty";
                $lock = $item['item_private'] || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid']) ? t('Private Message') : false;
                $likebuttons = false;
                $shareable = false;
                $verified = $item['item_flags'] & ITEM_VERIFIED ? t('Message signature validated') : '';
                $forged = $item['sig'] && !($item['item_flags'] & ITEM_VERIFIED) ? t('Message signature incorrect') : '';
                $unverified = '';
                $tags = array();
                $terms = get_terms_oftype($item['term'], array(TERM_HASHTAG, TERM_MENTION, TERM_UNKNOWN));
                if (count($terms)) {
                    foreach ($terms as $tag) {
                        $tags[] = format_term_for_display($tag);
                    }
                }
                $body = prepare_body($item, true);
                $tmp_item = array('template' => $tpl, 'toplevel' => 'toplevel_item', 'mode' => $mode, 'id' => $preview ? 'P0' : $item['item_id'], 'linktitle' => sprintf(t('View %s\'s profile @ %s'), $profile_name, $profile_url), 'profile_url' => $profile_link, 'item_photo_menu' => item_photo_menu($item), 'name' => $profile_name, 'sparkle' => $sparkle, 'lock' => $lock, 'thumb' => $profile_avatar, 'title' => $item['title'], 'body' => $body, 'tags' => $tags, 'hashtags' => $hashtags, 'mentions' => $mentions, 'verified' => $verified, 'unverified' => $unverified, 'forged' => $forged, 'txt_cats' => t('Categories:'), 'txt_folders' => t('Filed under:'), 'has_cats' => count($categories) ? 'true' : '', 'has_folders' => count($folders) ? 'true' : '', 'categories' => $categories, 'folders' => $folders, 'text' => strip_tags($body), 'ago' => relative_date($item['created']), 'app' => $item['app'], 'str_app' => sprintf(t(' from %s'), $item['app']), 'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'), 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), 'editedtime' => $item['edited'] != $item['created'] ? sprintf(t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : '', 'expiretime' => $item['expires'] !== NULL_DATE ? sprintf(t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')) : '', 'location' => $location, 'indent' => '', 'owner_name' => $owner_name, 'owner_url' => $owner_url, 'owner_photo' => $owner_photo, 'plink' => get_plink($item, false), 'edpost' => false, 'isstarred' => $isstarred, 'star' => $star, 'drop' => $drop, 'vote' => $likebuttons, 'like' => '', 'dislike' => '', 'comment' => '', 'conv' => $preview ? '' : array('href' => z_root() . '/display/' . $item['mid'], 'title' => t('View in context')), 'previewing' => $previewing, 'wait' => t('Please wait'), 'thread_level' => 1);
                $arr = array('item' => $item, 'output' => $tmp_item);
                call_hooks('display_item', $arr);
                //				$threads[$threadsid]['id'] = $item['item_id'];
                $threads[] = $arr['output'];
            }
        } else {
            // Normal View
            //			logger('conv: items: ' . print_r($items,true));
            require_once 'include/ConversationObject.php';
开发者ID:redmatrix,项目名称:red,代码行数:67,代码来源:conversation.php

示例7: api_format_items

function api_format_items($r, $user_info, $filter_user = false)
{
    $a = get_app();
    $ret = array();
    foreach ($r as $item) {
        api_share_as_retweet($item);
        localize_item($item);
        $status_user = api_item_get_user($a, $item);
        // Look if the posts are matching if they should be filtered by user id
        if ($filter_user and $status_user["id"] != $user_info["id"]) {
            continue;
        }
        if ($item['thr-parent'] != $item['uri']) {
            $r = q("SELECT id FROM item WHERE uid=%d AND uri='%s' LIMIT 1", intval(api_user()), dbesc($item['thr-parent']));
            if ($r) {
                $in_reply_to_status_id = intval($r[0]['id']);
            } else {
                $in_reply_to_status_id = intval($item['parent']);
            }
            $in_reply_to_status_id_str = (string) intval($item['parent']);
            $in_reply_to_screen_name = NULL;
            $in_reply_to_user_id = NULL;
            $in_reply_to_user_id_str = NULL;
            $r = q("SELECT `author-link` FROM item WHERE uid=%d AND id=%d LIMIT 1", intval(api_user()), intval($in_reply_to_status_id));
            if ($r) {
                $r = q("SELECT * FROM unique_contacts WHERE `url` = '%s'", dbesc(normalise_link($r[0]['author-link'])));
                if ($r) {
                    if ($r[0]['nick'] == "") {
                        $r[0]['nick'] = api_get_nick($r[0]["url"]);
                    }
                    $in_reply_to_screen_name = $r[0]['nick'] ? $r[0]['nick'] : $r[0]['name'];
                    $in_reply_to_user_id = intval($r[0]['id']);
                    $in_reply_to_user_id_str = (string) intval($r[0]['id']);
                }
            }
        } else {
            $in_reply_to_screen_name = NULL;
            $in_reply_to_user_id = NULL;
            $in_reply_to_status_id = NULL;
            $in_reply_to_user_id_str = NULL;
            $in_reply_to_status_id_str = NULL;
        }
        $converted = api_convert_item($item);
        $status = array('text' => $converted["text"], 'truncated' => False, 'created_at' => api_date($item['created']), 'in_reply_to_status_id' => $in_reply_to_status_id, 'in_reply_to_status_id_str' => $in_reply_to_status_id_str, 'source' => $item['app'] ? $item['app'] : 'web', 'id' => intval($item['id']), 'id_str' => (string) intval($item['id']), 'in_reply_to_user_id' => $in_reply_to_user_id, 'in_reply_to_user_id_str' => $in_reply_to_user_id_str, 'in_reply_to_screen_name' => $in_reply_to_screen_name, 'geo' => NULL, 'favorited' => $item['starred'] ? true : false, 'user' => $status_user, 'statusnet_html' => $converted["html"], 'statusnet_conversation_id' => $item['parent']);
        if (count($converted["attachments"]) > 0) {
            $status["attachments"] = $converted["attachments"];
        }
        if (count($converted["entities"]) > 0) {
            $status["entities"] = $converted["entities"];
        }
        if ($item['item_network'] != "" and $status["source"] == 'web') {
            $status["source"] = network_to_name($item['item_network'], $user_info['url']);
        } else {
            if ($item['item_network'] != "" and network_to_name($item['item_network'], $user_info['url']) != $status["source"]) {
                $status["source"] = trim($status["source"] . ' (' . network_to_name($item['item_network'], $user_info['url']) . ')');
            }
        }
        // Retweets are only valid for top postings
        // It doesn't work reliable with the link if its a feed
        $IsRetweet = $item['owner-link'] != $item['author-link'];
        if ($IsRetweet) {
            $IsRetweet = ($item['owner-name'] != $item['author-name'] or $item['owner-avatar'] != $item['author-avatar']);
        }
        if ($IsRetweet and $item["id"] == $item["parent"]) {
            $retweeted_status = $status;
            $retweeted_status["user"] = api_get_user($a, $item["author-link"]);
            $status["retweeted_status"] = $retweeted_status;
        }
        // "uid" and "self" are only needed for some internal stuff, so remove it from here
        unset($status["user"]["uid"]);
        unset($status["user"]["self"]);
        if ($item["coord"] != "") {
            $coords = explode(' ', $item["coord"]);
            if (count($coords) == 2) {
                $status["geo"] = array('type' => 'Point', 'coordinates' => array((double) $coords[0], (double) $coords[1]));
            }
        }
        $ret[] = $status;
    }
    return $ret;
}
开发者ID:ZerGabriel,项目名称:friendica,代码行数:81,代码来源:api.php

示例8: notification

/**
 * @brief
 *
 * @param array $params an assoziative array with:
 *  * \e string \b from_xchan sender xchan hash
 *  * \e string \b to_xchan recipient xchan hash
 *  * \e array \b item an assoziative array
 *  * \e int \b type one of the NOTIFY_* constants from boot.php
 *  * \e string \b link
 *  * \e string \b parent_mid
 *  * \e string \b otype
 *  * \e string \b verb
 *  * \e string \b activity
 */
function notification($params)
{
    logger('notification: entry', LOGGER_DEBUG);
    // throw a small amount of entropy into the system to breakup duplicates arriving at the same precise instant.
    usleep(mt_rand(0, 10000));
    $a = get_app();
    if ($params['from_xchan']) {
        $x = q("select * from xchan where xchan_hash = '%s' limit 1", dbesc($params['from_xchan']));
    }
    if ($params['to_xchan']) {
        $y = q("select channel.*, account.* from channel left join account on channel_account_id = account_id\n\t\t\twhere channel_hash = '%s' and channel_removed = 0 limit 1", dbesc($params['to_xchan']));
    }
    if ($x & $y) {
        $sender = $x[0];
        $recip = $y[0];
    } else {
        logger('notification: no sender or recipient.');
        logger('sender: ' . $params['from_xchan']);
        logger('recip: ' . $params['to_xchan']);
        return;
    }
    // from here on everything is in the recipients language
    push_lang($recip['account_language']);
    // should probably have a channel language
    $banner = t('$Projectname Notification');
    $product = t('$projectname');
    // PLATFORM_NAME;
    $siteurl = $a->get_baseurl(true);
    $thanks = t('Thank You,');
    $sitename = get_config('system', 'sitename');
    $site_admin = sprintf(t('%s Administrator'), $sitename);
    $sender_name = $product;
    $hostname = $a->get_hostname();
    if (strpos($hostname, ':')) {
        $hostname = substr($hostname, 0, strpos($hostname, ':'));
    }
    // Do not translate 'noreply' as it must be a legal 7-bit email address
    $sender_email = 'noreply' . '@' . $hostname;
    $additional_mail_header = "";
    if (array_key_exists('item', $params)) {
        require_once 'include/conversation.php';
        // if it's a normal item...
        if (array_key_exists('verb', $params['item'])) {
            // localize_item() alters the original item so make a copy first
            $i = $params['item'];
            logger('calling localize');
            localize_item($i);
            $title = $i['title'];
            $body = $i['body'];
            $private = $i['item_private'] || intval($i['item_obscured']);
        } else {
            $title = $params['item']['title'];
            $body = $params['item']['body'];
        }
    } else {
        $title = $body = '';
    }
    // e.g. "your post", "David's photo", etc.
    $possess_desc = t('%s <!item_type!>');
    if ($params['type'] == NOTIFY_MAIL) {
        logger('notification: mail');
        $subject = sprintf(t('[Hubzilla:Notify] New mail received at %s'), $sitename);
        $preamble = sprintf(t('%1$s, %2$s sent you a new private message at %3$s.'), $recip['channel_name'], $sender['xchan_name'], $sitename);
        $epreamble = sprintf(t('%1$s sent you %2$s.'), '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]', '[zrl=$itemlink]' . t('a private message') . '[/zrl]');
        $sitelink = t('Please visit %s to view and/or reply to your private messages.');
        $tsitelink = sprintf($sitelink, $siteurl . '/mail/' . $params['item']['id']);
        $hsitelink = sprintf($sitelink, '<a href="' . $siteurl . '/mail/' . $params['item']['id'] . '">' . $sitename . '</a>');
        $itemlink = $siteurl . '/mail/' . $params['item']['id'];
    }
    if ($params['type'] == NOTIFY_COMMENT) {
        //		logger("notification: params = " . print_r($params, true), LOGGER_DEBUG);
        $itemlink = $params['link'];
        // ignore like/unlike activity on posts - they probably require a sepearate notification preference
        if (array_key_exists('item', $params) && !visible_activity($params['item'])) {
            return;
        }
        $parent_mid = $params['parent_mid'];
        // Check to see if there was already a notify for this post.
        // If so don't create a second notification
        $p = null;
        $p = q("select id from notify where link = '%s' and uid = %d limit 1", dbesc($params['link']), intval($recip['channel_id']));
        if ($p) {
            logger('notification: comment already notified');
            pop_lang();
            return;
        }
//.........这里部分代码省略.........
开发者ID:TamirAl,项目名称:hubzilla,代码行数:101,代码来源:enotify.php

示例9: conversation

/**
 * "Render" a conversation or list of items for HTML display.
 * There are two major forms of display:
 *      - 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 
 * that are based on unique features of the calling module.
 *
 */
function conversation(&$a, $items, $mode, $update, $preview = false)
{
    require_once 'bbcode.php';
    $profile_owner = 0;
    $page_writeable = false;
    if ($mode === 'network') {
        $profile_owner = local_user();
        $page_writeable = true;
    }
    if ($mode === 'profile') {
        $profile_owner = $a->profile['profile_uid'];
        $page_writeable = can_write_wall($a, $profile_owner);
    }
    if ($mode === 'notes') {
        $profile_owner = local_user();
        $page_writeable = true;
    }
    if ($mode === 'display') {
        $profile_owner = $a->profile['uid'];
        $page_writeable = can_write_wall($a, $profile_owner);
    }
    if ($mode === 'community') {
        $profile_owner = 0;
        $page_writeable = false;
    }
    if ($update) {
        $return_url = $_SESSION['return_url'];
    } else {
        $return_url = $_SESSION['return_url'] = $a->cmd;
    }
    load_contact_links(local_user());
    $cmnt_tpl = get_markup_template('comment_item.tpl');
    $tpl = get_markup_template('wall_item.tpl');
    $wallwall = get_markup_template('wallwall_item.tpl');
    $hide_comments_tpl = get_markup_template('hide_comments.tpl');
    $alike = array();
    $dlike = array();
    // array with html for each thread (parent+comments)
    $threads = array();
    $threadsid = -1;
    if (count($items)) {
        if ($mode === 'network-new' || $mode === 'search' || $mode === 'community') {
            // "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');
            foreach ($items as $item) {
                $threadsid++;
                $comment = '';
                $owner_url = '';
                $owner_photo = '';
                $owner_name = '';
                $sparkle = '';
                if ($mode === 'search' || $mode === 'community') {
                    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'];
                }
                $profile_name = strlen($item['author-name']) ? $item['author-name'] : $item['name'];
                if ($item['author-link'] && !$item['author-name']) {
                    $profile_name = $item['author-link'];
                }
                $sp = false;
                $profile_link = best_link_url($item, $sp);
                if ($sp) {
                    $sparkle = ' sparkle';
                }
                if ($profile_link === 'mailbox') {
                    $profile_link = '';
                }
                $normalised = normalise_link(strlen($item['author-link']) ? $item['author-link'] : $item['url']);
                if ($normalised != 'mailbox' && x($a->contacts[$normalised])) {
                    $profile_avatar = $a->contacts[$normalised]['thumb'];
                } else {
                    $profile_avatar = strlen($item['author-avatar']) ? $item['author-avatar'] : $item['thumb'];
                }
                $location = $item['location'] ? '<a target="map" title="' . $item['location'] . '" href="http://maps.google.com/?q=' . urlencode($item['location']) . '">' . $item['location'] . '</a>' : '';
                $coord = $item['coord'] ? '<a target="map" title="' . $item['coord'] . '" href="http://maps.google.com/?q=' . urlencode($item['coord']) . '">' . $item['coord'] . '</a>' : '';
                if ($coord) {
                    if ($location) {
                        $location .= '<br /><span class="smalltext">(' . $coord . ')</span>';
                    } else {
                        $location = '<span class="smalltext">' . $coord . '</span>';
                    }
                }
                localize_item($item);
                if ($mode === 'network-new') {
                    $dropping = true;
//.........这里部分代码省略.........
开发者ID:nphyx,项目名称:friendica,代码行数:101,代码来源:conversation.php

示例10: api_format_items

function api_format_items($r, $user_info)
{
    //logger('api_format_items: ' . print_r($r,true));
    //logger('api_format_items: ' . print_r($user_info,true));
    $a = get_app();
    $ret = array();
    foreach ($r as $item) {
        localize_item($item);
        $status_user = $item['cid'] == $user_info['id'] ? $user_info : api_item_get_user($a, $item);
        $status = array('created_at' => api_date($item['created']), 'published' => api_date($item['created']), 'updated' => api_date($item['edited']), 'id' => intval($item['id']), 'message_id' => $item['uri'], 'text' => strip_tags(bbcode($item['body'])), 'statusnet_html' => bbcode($item['body']), 'source' => $item['app'] ? $item['app'] : 'web', 'url' => $item['plink'] != '' ? $item['plink'] : $item['author-link'], 'truncated' => False, 'in_reply_to_status_id' => $item['parent'] != $item['id'] ? intval($item['parent']) : '', 'in_reply_to_user_id' => '', 'favorited' => $item['starred'] ? true : false, 'in_reply_to_screen_name' => '', 'geo' => '', 'coordinates' => $item['coord'], 'place' => $item['location'], 'contributors' => '', 'annotations' => '', 'entities' => '', 'user' => $status_user, 'objecttype' => $item['object-type'] ? $item['object-type'] : ACTIVITY_OBJ_NOTE, 'verb' => $item['verb'] ? $item['verb'] : ACTIVITY_POST, 'self' => $a->get_baseurl() . "/api/statuses/show/" . $item['id'] . "." . $type, 'edit' => $a->get_baseurl() . "/api/statuses/show/" . $item['id'] . "." . $type);
        $ret[] = $status;
    }
    return $ret;
}
开发者ID:nphyx,项目名称:friendica,代码行数:14,代码来源:api.php

示例11: get_template_data


//.........这里部分代码省略.........
      * We should avoid doing this all the time, but it depends on the conversation mode
      * And the conv mode may change when we change the conv, or it changes its mode
      * Maybe we should establish a way to be notified about conversation changes
      */
     $this->check_wall_to_wall();
     if ($this->is_wall_to_wall() && $this->get_owner_url() == $this->get_redirect_url()) {
         $osparkle = ' sparkle';
     }
     if ($this->is_toplevel()) {
         if ($conv->get_profile_owner() == local_user()) {
             $isstarred = $item['starred'] ? "starred" : "unstarred";
             $star = array('do' => t("add star"), 'undo' => t("remove star"), 'toggle' => t("toggle star status"), 'classdo' => $item['starred'] ? "hidden" : "", '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']));
             if (count($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", 'ignored' => t('ignored'));
             }
             $tagger = '';
             if (feature_enabled($conv->get_profile_owner(), 'commtag')) {
                 $tagger = array('add' => t("add tag"), 'class' => "");
             }
         }
     } else {
         $indent = 'comment';
     }
     if ($conv->is_writable()) {
         $buttons = array('like' => array(t("I like this (toggle)"), t("like")), 'dislike' => feature_enabled($conv->get_profile_owner(), 'dislike') ? array(t("I don't like this (toggle)"), t("dislike")) : '');
         if ($shareable) {
             $buttons['share'] = array(t('Share this'), t('share'));
         }
     }
     if (strcmp(datetime_convert('UTC', 'UTC', $item['created']), datetime_convert('UTC', 'UTC', 'now - 12 hours')) > 0) {
         $shiny = 'shiny';
     }
     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);
     if ($a->theme['template_engine'] === 'internal') {
         $body_e = template_escape($body);
         $text_e = strip_tags(template_escape($body));
         $name_e = template_escape($profile_name);
         $title_e = template_escape($item['title']);
         $location_e = template_escape($location);
         $owner_name_e = template_escape($this->get_owner_name());
     } else {
         $body_e = $body;
开发者ID:jzacman,项目名称:friendica,代码行数:67,代码来源:Item.php

示例12: api_format_items

function api_format_items($r, $user_info)
{
    //logger('api_format_items: ' . print_r($r,true));
    //logger('api_format_items: ' . print_r($user_info,true));
    $a = get_app();
    $ret = array();
    foreach ($r as $item) {
        localize_item($item);
        $status_user = $item['cid'] == $user_info['id'] ? $user_info : api_item_get_user($a, $item);
        if ($item['parent'] != $item['id']) {
            $r = q("select id from item where parent=%s and id<%s order by id desc limit 1", intval($item['parent']), intval($item['id']));
            if ($r) {
                $in_reply_to_status_id = $r[0]['id'];
            } else {
                $in_reply_to_status_id = $item['parent'];
            }
            $r = q("select `item`.`contact-id`, `contact`.nick, `item`.`author-name` from item, contact\n\t\t\t\t\twhere `contact`.`id` = `item`.`contact-id` and `item`.id=%d", intval($in_reply_to_status_id));
            $in_reply_to_screen_name = $r[0]['author-name'];
            $in_reply_to_user_id = $r[0]['contact-id'];
        } else {
            $in_reply_to_screen_name = '';
            $in_reply_to_user_id = 0;
            $in_reply_to_status_id = 0;
        }
        // Workaround for ostatus messages where the title is identically to the body
        $statusbody = trim(html2plain(bbcode($item['body'], false, false, true), 0));
        $statustitle = trim($item['title']);
        if ($statustitle != '' and strpos($statusbody, $statustitle) !== false) {
            $statustext = trim($statusbody);
        } else {
            $statustext = trim($statustitle . "\n\n" . $statusbody);
        }
        if ($item["network"] == NETWORK_FEED and strlen($statustext) > 1000) {
            $statustext = substr($statustext, 0, 1000) . "... \n" . $item["plink"];
        }
        $status = array('text' => $statustext, 'truncated' => False, 'created_at' => api_date($item['created']), 'in_reply_to_status_id' => $in_reply_to_status_id, 'source' => $item['app'] ? $item['app'] : 'web', 'id' => intval($item['id']), 'in_reply_to_user_id' => $in_reply_to_user_id, 'in_reply_to_screen_name' => $in_reply_to_screen_name, 'geo' => '', 'favorited' => $item['starred'] ? true : false, 'user' => $status_user, 'statusnet_html' => trim(bbcode($item['body'])), 'statusnet_conversation_id' => $item['parent']);
        // Seesmic doesn't like the following content
        if ($_SERVER['HTTP_USER_AGENT'] != 'Seesmic') {
            $status2 = array('updated' => api_date($item['edited']), 'published' => api_date($item['created']), 'message_id' => $item['uri'], 'url' => $item['plink'] != '' ? $item['plink'] : $item['author-link'], 'coordinates' => $item['coord'], 'place' => $item['location'], 'contributors' => '', 'annotations' => '', 'entities' => '', 'objecttype' => $item['object-type'] ? $item['object-type'] : ACTIVITY_OBJ_NOTE, 'verb' => $item['verb'] ? $item['verb'] : ACTIVITY_POST, 'self' => $a->get_baseurl() . "/api/statuses/show/" . $item['id'] . "." . $type, 'edit' => $a->get_baseurl() . "/api/statuses/show/" . $item['id'] . "." . $type);
            $status = array_merge($status, $status2);
        }
        $ret[] = $status;
    }
    return $ret;
}
开发者ID:ridcully,项目名称:friendica,代码行数:45,代码来源:api.php

示例13: api_format_items

function api_format_items($r, $user_info, $filter_user = false)
{
    $a = get_app();
    $ret = array();
    foreach ($r as $item) {
        api_share_as_retweet($a, api_user(), $item);
        localize_item($item);
        $status_user = api_item_get_user($a, $item);
        // Look if the posts are matching if they should be filtered by user id
        if ($filter_user and $status_user["id"] != $user_info["id"]) {
            continue;
        }
        if ($item['thr-parent'] != $item['uri']) {
            $r = q("SELECT id FROM item WHERE uid=%d AND uri='%s' LIMIT 1", intval(api_user()), dbesc($item['thr-parent']));
            if ($r) {
                $in_reply_to_status_id = intval($r[0]['id']);
            } else {
                $in_reply_to_status_id = intval($item['parent']);
            }
            $in_reply_to_status_id_str = (string) intval($item['parent']);
            $in_reply_to_screen_name = NULL;
            $in_reply_to_user_id = NULL;
            $in_reply_to_user_id_str = NULL;
            $r = q("SELECT `author-link` FROM item WHERE uid=%d AND id=%d LIMIT 1", intval(api_user()), intval($in_reply_to_status_id));
            if ($r) {
                $r = q("SELECT * FROM unique_contacts WHERE `url` = '%s'", dbesc(normalise_link($r[0]['author-link'])));
                if ($r) {
                    if ($r[0]['nick'] == "") {
                        $r[0]['nick'] = api_get_nick($r[0]["url"]);
                    }
                    $in_reply_to_screen_name = $r[0]['nick'] ? $r[0]['nick'] : $r[0]['name'];
                    $in_reply_to_user_id = intval($r[0]['id']);
                    $in_reply_to_user_id_str = (string) intval($r[0]['id']);
                }
            }
        } else {
            $in_reply_to_screen_name = NULL;
            $in_reply_to_user_id = NULL;
            $in_reply_to_status_id = NULL;
            $in_reply_to_user_id_str = NULL;
            $in_reply_to_status_id_str = NULL;
        }
        // Workaround for ostatus messages where the title is identically to the body
        //$statusbody = trim(html2plain(bbcode(api_clean_plain_items($item['body']), false, false, 5, true), 0));
        $html = bbcode(api_clean_plain_items($item['body']), false, false, 2, true);
        $statusbody = trim(html2plain($html, 0));
        $statustitle = trim($item['title']);
        if ($statustitle != '' and strpos($statusbody, $statustitle) !== false) {
            $statustext = trim($statusbody);
        } else {
            $statustext = trim($statustitle . "\n\n" . $statusbody);
        }
        if ($item["network"] == NETWORK_FEED and strlen($statustext) > 1000) {
            $statustext = substr($statustext, 0, 1000) . "... \n" . $item["plink"];
        }
        $status = array('text' => $statustext, 'truncated' => False, 'created_at' => api_date($item['created']), 'in_reply_to_status_id' => $in_reply_to_status_id, 'in_reply_to_status_id_str' => $in_reply_to_status_id_str, 'source' => $item['app'] ? $item['app'] : 'web', 'id' => intval($item['id']), 'id_str' => (string) intval($item['id']), 'in_reply_to_user_id' => $in_reply_to_user_id, 'in_reply_to_user_id_str' => $in_reply_to_user_id_str, 'in_reply_to_screen_name' => $in_reply_to_screen_name, 'geo' => NULL, 'favorited' => $item['starred'] ? true : false, 'user' => $status_user, 'statusnet_html' => trim(bbcode($item['body'], false, false)), 'statusnet_conversation_id' => $item['parent']);
        if ($item['title'] != "") {
            $status['statusnet_html'] = "<h4>" . bbcode($item['title']) . "</h4>\n" . $status['statusnet_html'];
        }
        $entities = api_get_entitities($status['text'], $item['body']);
        if (count($entities) > 0) {
            $status['entities'] = $entities;
        }
        if ($item['item_network'] != "" and $status["source"] == 'web') {
            $status["source"] = network_to_name($item['item_network']);
        } else {
            if ($item['item_network'] != "" and network_to_name($item['item_network']) != $status["source"]) {
                $status["source"] = trim($status["source"] . ' (' . network_to_name($item['item_network']) . ')');
            }
        }
        // Retweets are only valid for top postings
        // It doesn't work reliable with the link if its a feed
        $IsRetweet = $item['owner-link'] != $item['author-link'];
        if ($IsRetweet) {
            $IsRetweet = ($item['owner-name'] != $item['author-name'] or $item['owner-avatar'] != $item['author-avatar']);
        }
        if ($IsRetweet and $item["id"] == $item["parent"]) {
            $retweeted_status = $status;
            $retweeted_status["user"] = api_get_user($a, $item["author-link"]);
            $status["retweeted_status"] = $retweeted_status;
        }
        // "uid" and "self" are only needed for some internal stuff, so remove it from here
        unset($status["user"]["uid"]);
        unset($status["user"]["self"]);
        // 'geo' => array('type' => 'Point',
        //                   'coordinates' => array((float) $notice->lat,
        //                                          (float) $notice->lon));
        $ret[] = $status;
    }
    return $ret;
}
开发者ID:jzacman,项目名称:friendica,代码行数:91,代码来源:api.php

示例14: get_template_data


//.........这里部分代码省略.........
         if (count($dislike_list) > MAX_LIKERS) {
             $dislike_list_part = array_slice($dislike_list, 0, MAX_LIKERS);
             array_push($dislike_list_part, '<a href="#" data-toggle="modal" data-target="#dislikeModal-' . $this->get_id() . '"><b>' . t('View all') . '</b></a>');
         } else {
             $dislike_list_part = '';
         }
     }
     $showlike = x($alike, $item['mid']) ? format_like($alike[$item['mid']], $alike[$item['mid'] . '-l'], 'like', $item['mid']) : '';
     $showdislike = x($dlike, $item['mid']) && feature_enabled($conv->get_profile_owner(), 'dislike') ? format_like($dlike[$item['mid']], $dlike[$item['mid'] . '-l'], 'dislike', $item['mid']) : '';
     /*
      * We should avoid doing this all the time, but it depends on the conversation mode
      * And the conv mode may change when we change the conv, or it changes its mode
      * Maybe we should establish a way to be notified about conversation changes
      */
     $this->check_wall_to_wall();
     if ($this->is_toplevel()) {
         // FIXME check this permission
         if ($conv->get_profile_owner() == local_user()) {
             // FIXME we don't need all this stuff, some can be done in the template
             $star = array('do' => t("Add Star"), 'undo' => t("Remove Star"), 'toggle' => t("Toggle Star Status"), 'classdo' => $item['item_flags'] & ITEM_STARRED ? "hidden" : "", 'classundo' => $item['item_flags'] & ITEM_STARRED ? "" : "hidden", 'isstarred' => $item['item_flags'] & ITEM_STARRED ? "starred icon-star" : "unstarred icon-star-empty", 'starred' => t('starred'));
         }
     } else {
         $indent = 'comment';
     }
     $verified = $item['item_flags'] & ITEM_VERIFIED ? t('Message is verified') : '';
     $unverified = '';
     // (($this->is_wall_to_wall() && (! ($item['item_flags'] & ITEM_VERIFIED))) ? t('Message cannot be verified') : '');
     // FIXME - check this permission
     if ($conv->get_profile_owner() == local_user()) {
         $tagger = array('tagit' => t("Add Tag"), 'classtagger' => "");
     }
     $has_bookmarks = false;
     if (is_array($item['term'])) {
         foreach ($item['term'] as $t) {
             if ($t['type'] == TERM_BOOKMARK) {
                 $has_bookmarks = true;
             }
         }
     }
     $has_event = false;
     if ($item['obj_type'] === ACTIVITY_OBJ_EVENT && $conv->get_profile_owner() == local_user()) {
         $has_event = true;
     }
     if ($this->is_commentable()) {
         $like = array(t("I like this (toggle)"), t("like"));
         $dislike = array(t("I don't like this (toggle)"), t("dislike"));
     }
     if ($shareable) {
         $share = array(t('Share This'), t('share'));
     }
     if (strcmp(datetime_convert('UTC', 'UTC', $item['created']), datetime_convert('UTC', 'UTC', 'now - 12 hours')) > 0) {
         $indent .= ' shiny';
     }
     $t2 = dba_timer();
     localize_item($item);
     $t3 = dba_timer();
     $body = prepare_body($item, true);
     $t4 = dba_timer();
     $tmp_item = array('template' => $this->get_template(), 'mode' => $mode, 'type' => implode("", array_slice(explode("/", $item['verb']), -1)), 'tags' => array(), 'body' => $body, 'text' => strip_tags($body), 'id' => $this->get_id(), 'linktitle' => sprintf(t('View %s\'s profile - %s'), $profile_name, $item['author']['xchan_addr']), 'olinktitle' => sprintf(t('View %s\'s profile - %s'), $this->get_owner_name(), $item['owner']['xchan_addr']), 'to' => t('to'), 'via' => t('via'), 'wall' => t('Wall-to-Wall'), 'vwall' => t('via Wall-To-Wall:'), 'profile_url' => $profile_link, 'item_photo_menu' => item_photo_menu($item), 'name' => $profile_name, 'thumb' => $profile_avatar, 'osparkle' => $osparkle, 'sparkle' => $sparkle, 'title' => $item['title'], 'ago' => relative_date($item['created']), 'app' => $item['app'], 'str_app' => sprintf(t(' from %s'), $item['app']), 'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'), 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), 'editedtime' => $item['edited'] != $item['created'] ? sprintf(t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : '', 'expiretime' => $item['expires'] !== NULL_DATE ? sprintf(t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')) : '', 'lock' => $lock, 'verified' => $verified, 'unverified' => $unverified, 'location' => $location, 'indent' => $indent, 'owner_url' => $this->get_owner_url(), 'owner_photo' => $this->get_owner_photo(), 'owner_name' => $this->get_owner_name(), 'like' => $like, 'dislike' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike : '', 'share' => $share, 'rawmid' => $item['mid'], 'plink' => get_plink($item), 'edpost' => feature_enabled($conv->get_profile_owner(), 'edit_posts') ? $edpost : '', 'star' => feature_enabled($conv->get_profile_owner(), 'star_posts') ? $star : '', 'tagger' => feature_enabled($conv->get_profile_owner(), 'commtag') ? $tagger : '', 'filer' => feature_enabled($conv->get_profile_owner(), 'filing') ? $filer : '', 'bookmark' => $conv->get_profile_owner() == local_user() && $has_bookmarks ? t('Save Bookmarks') : '', 'addtocal' => $has_event ? t('Add to Calendar') : '', 'drop' => $drop, 'multidrop' => feature_enabled($conv->get_profile_owner(), 'multi_delete') ? $multidrop : '', 'like_count' => $like_count, 'like_list' => $like_list, 'like_list_part' => $like_list_part, 'like_button_label' => $like_button_label, 'like_modal_title' => t('Likes', 'noun'), 'dislike_modal_title' => t('Dislikes', 'noun'), 'dislike_count' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike_count : '', 'dislike_list' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike_list : '', 'dislike_list_part' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike_list_part : '', 'dislike_button_label' => feature_enabled($conv->get_profile_owner(), 'dislike') ? $dislike_button_label : '', 'modal_dismiss' => t('Close'), 'showlike' => $showlike, 'showdislike' => $showdislike, 'comment' => $this->get_comment_box($indent), 'previewing' => $conv->is_preview() ? ' preview ' : '', 'wait' => t('Please wait'), 'thread_level' => $thread_level);
     $t5 = dba_timer();
     $arr = array('item' => $item, 'output' => $tmp_item);
     call_hooks('display_item', $arr);
     $result = $arr['output'];
     $result['children'] = array();
     $children = $this->get_children();
     $nb_children = count($children);
     if ($nb_children > 0) {
         foreach ($children as $child) {
             $result['children'][] = $child->get_template_data($alike, $dlike, $thread_level + 1);
         }
         // Collapse
         if ($nb_children > 2 || $thread_level > 1) {
             $result['children'][0]['comment_firstcollapsed'] = true;
             $result['children'][0]['num_comments'] = sprintf(tt('%d comment', '%d comments', $total_children), $total_children);
             $result['children'][0]['hide_text'] = t('[+] show all');
             if ($thread_level > 1) {
                 $result['children'][$nb_children - 1]['comment_lastcollapsed'] = true;
             } else {
                 $result['children'][$nb_children - 3]['comment_lastcollapsed'] = true;
             }
         }
     }
     $result['private'] = $item['item_private'];
     $result['toplevel'] = $this->is_toplevel() ? 'toplevel_item' : '';
     if ($this->is_threaded()) {
         $result['flatten'] = false;
         $result['threaded'] = true;
     } else {
         $result['flatten'] = true;
         $result['threaded'] = false;
     }
     $t6 = dba_timer();
     //		profiler($t1,$t2,'t2');
     //		profiler($t2,$t3,'t3');
     //		profiler($t3,$t4,'t4');
     //		profiler($t4,$t5,'t5');
     //		profiler($t5,$t6,'t6');
     //		profiler($t1,$t6,'item total');
     return $result;
 }
开发者ID:Mauru,项目名称:red,代码行数:101,代码来源:ItemObject.php


注:本文中的localize_item函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。