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


PHP linkify_tags函数代码示例

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


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

示例1: item_post


//.........这里部分代码省略.........
        $plaintext = true;
        //		$plaintext = ((feature_enabled($profile_uid,'richtext')) ? false : true);
        //		if((! $parent) && (! $api_source) && (! $plaintext)) {
        //			$body = fix_mce_lf($body);
        //		}
        // If we're sending a private top-level message with a single @-taggable channel as a recipient, @-tag it, if our pconfig is set.
        if (!$parent && get_pconfig($profile_uid, 'system', 'tagifonlyrecip') && substr_count($str_contact_allow, '<') == 1 && $str_group_allow == '' && $str_contact_deny == '' && $str_group_deny == '') {
            $x = q("select abook_id, abook_their_perms from abook where abook_xchan = '%s' and abook_channel = %d limit 1", dbesc(str_replace(array('<', '>'), array('', ''), $str_contact_allow)), intval($profile_uid));
            if ($x && $x[0]['abook_their_perms'] & PERMS_W_TAGWALL) {
                $body .= "\n\n@group+" . $x[0]['abook_id'] . "\n";
            }
        }
        /**
         * fix naked links by passing through a callback to see if this is a red site
         * (already known to us) which will get a zrl, otherwise link with url, add bookmark tag to both.
         * First protect any url inside certain bbcode tags so we don't double link it.
         */
        $body = preg_replace_callback('/\\[code(.*?)\\[\\/(code)\\]/ism', 'red_escape_codeblock', $body);
        $body = preg_replace_callback('/\\[url(.*?)\\[\\/(url)\\]/ism', 'red_escape_codeblock', $body);
        $body = preg_replace_callback('/\\[zrl(.*?)\\[\\/(zrl)\\]/ism', 'red_escape_codeblock', $body);
        $body = preg_replace_callback("/([^\\]\\='" . '"' . "\\/]|^|\\#\\^)(https?\\:\\/\\/[a-zA-Z0-9\\:\\/\\-\\?\\&\\;\\.\\=\\@\\_\\~\\#\\%\$\\!\\+\\,]+)/ism", 'red_zrl_callback', $body);
        $body = preg_replace_callback('/\\[\\$b64zrl(.*?)\\[\\/(zrl)\\]/ism', 'red_unescape_codeblock', $body);
        $body = preg_replace_callback('/\\[\\$b64url(.*?)\\[\\/(url)\\]/ism', 'red_unescape_codeblock', $body);
        $body = preg_replace_callback('/\\[\\$b64code(.*?)\\[\\/(code)\\]/ism', 'red_unescape_codeblock', $body);
        // fix any img tags that should be zmg
        $body = preg_replace_callback('/\\[img(.*?)\\](.*?)\\[\\/img\\]/ism', 'red_zrlify_img_callback', $body);
        $body = bb_translate_video($body);
        /**
         * Fold multi-line [code] sequences
         */
        $body = preg_replace('/\\[\\/code\\]\\s*\\[code\\]/ism', "\n", $body);
        $body = scale_external_images($body, false);
        // Look for tags and linkify them
        $results = linkify_tags($a, $body, $uid ? $uid : $profile_uid);
        if ($results) {
            // Set permissions based on tag replacements
            set_linkified_perms($results, $str_contact_allow, $str_group_allow, $profile_uid, $parent_item, $private);
            $post_tags = array();
            foreach ($results as $result) {
                $success = $result['success'];
                if ($success['replaced']) {
                    $post_tags[] = array('uid' => $profile_uid, 'type' => $success['termtype'], 'otype' => TERM_OBJ_POST, 'term' => $success['term'], 'url' => $success['url']);
                }
            }
        }
        /**
         *
         * When a photo was uploaded into the message using the (profile wall) ajax 
         * uploader, The permissions are initially set to disallow anybody but the
         * owner from seeing it. This is because the permissions may not yet have been
         * set for the post. If it's private, the photo permissions should be set
         * appropriately. But we didn't know the final permissions on the post until
         * now. So now we'll look for links of uploaded photos and attachments that are in the
         * post and set them to the same permissions as the post itself.
         *
         * If the post was end-to-end encrypted we can't find images and attachments in the body,
         * use our media_str input instead which only contains these elements - but only do this
         * when encrypted content exists because the photo/attachment may have been removed from 
         * the post and we should keep it private. If it's encrypted we have no way of knowing
         * so we'll set the permissions regardless and realise that the media may not be 
         * referenced in the post. 
         *
         * What is preventing us from being able to upload photos into comments is dealing with
         * the photo and attachment permissions, since we don't always know who was in the 
         * distribution for the top level post.
         * 
开发者ID:einervonvielen,项目名称:redmatrix,代码行数:67,代码来源:item.php

示例2: photos_post


//.........这里部分代码省略.........
                    $height = $ph->getHeight();
                    $x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 2", dbescbin($ph->imageString()), intval($height), intval($width), dbesc($resource_id), intval($page_owner_uid));
                    if ($width > 320 || $height > 320) {
                        $ph->scaleImage(320);
                    }
                    $width = $ph->getWidth();
                    $height = $ph->getHeight();
                    $x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 3", dbescbin($ph->imageString()), intval($height), intval($width), dbesc($resource_id), intval($page_owner_uid));
                }
            }
        }
        $p = q("SELECT type, is_nsfw, description, resource_id, scale, allow_cid, allow_gid, deny_cid, deny_gid FROM photo WHERE resource_id = '%s' AND uid = %d ORDER BY scale DESC", dbesc($resource_id), intval($page_owner_uid));
        if ($p) {
            $ext = $phototypes[$p[0]['type']];
            $r = q("UPDATE `photo` SET `description` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource_id` = '%s' AND `uid` = %d", dbesc($desc), dbesc($perm['allow_cid']), dbesc($perm['allow_gid']), dbesc($perm['deny_cid']), dbesc($perm['deny_gid']), dbesc($resource_id), intval($page_owner_uid));
        }
        $item_private = $str_contact_allow || $str_group_allow || $str_contact_deny || $str_group_deny ? true : false;
        $old_is_nsfw = $p[0]['is_nsfw'];
        if ($old_is_nsfw != $is_nsfw) {
            $r = q("update photo set is_nsfw = %d where resource_id = '%s' and uid = %d", intval($is_nsfw), dbesc($resource_id), intval($page_owner_uid));
        }
        /* Don't make the item visible if the only change was the album name */
        $visibility = 0;
        if ($p[0]['description'] !== $desc || strlen($rawtags)) {
            $visibility = 1;
        }
        if (!$item_id) {
            $item_id = photos_create_item($a->data['channel'], get_observer_hash(), $p[0], $visibility);
        }
        if ($item_id) {
            $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($item_id), intval($page_owner_uid));
            if ($r) {
                $old_tag = $r[0]['tag'];
                $old_inform = $r[0]['inform'];
            }
        }
        // make sure the linked item has the same permissions as the photo regardless of any other changes
        $x = q("update item set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', item_private = %d\n\t\t\twhere id = %d", dbesc($perm['allow_cid']), dbesc($perm['allow_gid']), dbesc($perm['deny_cid']), dbesc($perm['deny_gid']), intval($acl->is_private()), intval($item_id));
        // make sure the attach has the same permissions as the photo regardless of any other changes
        $x = q("update attach set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where hash = '%s' and uid = %d and is_photo = 1", dbesc($perm['allow_cid']), dbesc($perm['allow_gid']), dbesc($perm['deny_cid']), dbesc($perm['deny_gid']), dbesc($resource_id), intval($page_owner_uid));
        if (strlen($rawtags)) {
            $str_tags = '';
            $inform = '';
            // if the new tag doesn't have a namespace specifier (@foo or #foo) give it a mention
            $x = substr($rawtags, 0, 1);
            if ($x !== '@' && $x !== '#') {
                $rawtags = '@' . $rawtags;
            }
            require_once 'include/text.php';
            $profile_uid = $a->profile['profile_uid'];
            $results = linkify_tags($a, $rawtags, local_channel() ? local_channel() : $profile_uid);
            $success = $results['success'];
            $post_tags = array();
            foreach ($results as $result) {
                $success = $result['success'];
                if ($success['replaced']) {
                    $post_tags[] = array('uid' => $profile_uid, 'type' => $success['termtype'], 'otype' => TERM_OBJ_POST, 'term' => $success['term'], 'url' => $success['url']);
                }
            }
            $r = q("select * from item where id = %d and uid = %d limit 1", intval($item_id), intval($page_owner_uid));
            if ($r) {
                $r = fetch_post_tags($r, true);
                $datarray = $r[0];
                if ($post_tags) {
                    if (!array_key_exists('term', $datarray) || !is_array($datarray['term'])) {
                        $datarray['term'] = $post_tags;
                    } else {
                        $datarray['term'] = array_merge($datarray['term'], $post_tags);
                    }
                }
                item_store_update($datarray, $execflag);
            }
        }
        goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
        return;
        // NOTREACHED
    }
    /**
     * default post action - upload a photo
     */
    $channel = $a->data['channel'];
    $observer = $a->data['observer'];
    $_REQUEST['source'] = 'photos';
    require_once 'include/attach.php';
    if (!local_channel()) {
        $_REQUEST['contact_allow'] = expand_acl($channel['channel_allow_cid']);
        $_REQUEST['group_allow'] = expand_acl($channel['channel_allow_gid']);
        $_REQUEST['contact_deny'] = expand_acl($channel['channel_deny_cid']);
        $_REQUEST['group_deny'] = expand_acl($channel['channel_deny_gid']);
    }
    $r = attach_store($a->channel, get_observer_hash(), '', $_REQUEST);
    if (!$r['success']) {
        notice($r['message'] . EOL);
    }
    if ($_REQUEST['newalbum']) {
        goaway($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($_REQUEST['newalbum']));
    } else {
        goaway($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex(datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y')));
    }
}
开发者ID:spthaolt,项目名称:hubzilla,代码行数:101,代码来源:photos.php

示例3: events_post

function events_post(&$a)
{
    logger('post: ' . print_r($_REQUEST, true), LOGGER_DATA);
    if (!local_channel()) {
        return;
    }
    if ($_FILES && array_key_exists('userfile', $_FILES) && intval($_FILES['userfile']['size'])) {
        $src = $_FILES['userfile']['tmp_name'];
        if ($src) {
            $result = parse_ical_file($src, local_channel());
            if ($result) {
                info(t('Calendar entries imported.') . EOL);
            } else {
                notice(t('No calendar entries found.') . EOL);
            }
            @unlink($src);
        }
        goaway(z_root() . '/events');
    }
    $event_id = x($_POST, 'event_id') ? intval($_POST['event_id']) : 0;
    $event_hash = x($_POST, 'event_hash') ? $_POST['event_hash'] : '';
    $xchan = x($_POST, 'xchan') ? dbesc($_POST['xchan']) : '';
    $uid = local_channel();
    $start_text = escape_tags($_REQUEST['start_text']);
    $finish_text = escape_tags($_REQUEST['finish_text']);
    $adjust = intval($_POST['adjust']);
    $nofinish = intval($_POST['nofinish']);
    $categories = escape_tags(trim($_POST['category']));
    // only allow editing your own events.
    if ($xchan && $xchan !== get_observer_hash()) {
        return;
    }
    if ($start_text) {
        $start = $start_text;
    } else {
        $start = sprintf('%d-%d-%d %d:%d:0', $startyear, $startmonth, $startday, $starthour, $startminute);
    }
    if ($nofinish) {
        $finish = NULL_DATE;
    }
    if ($finish_text) {
        $finish = $finish_text;
    } else {
        $finish = sprintf('%d-%d-%d %d:%d:0', $finishyear, $finishmonth, $finishday, $finishhour, $finishminute);
    }
    if ($adjust) {
        $start = datetime_convert(date_default_timezone_get(), 'UTC', $start);
        if (!$nofinish) {
            $finish = datetime_convert(date_default_timezone_get(), 'UTC', $finish);
        }
    } else {
        $start = datetime_convert('UTC', 'UTC', $start);
        if (!$nofinish) {
            $finish = datetime_convert('UTC', 'UTC', $finish);
        }
    }
    // Don't allow the event to finish before it begins.
    // It won't hurt anything, but somebody will file a bug report
    // and we'll waste a bunch of time responding to it. Time that
    // could've been spent doing something else.
    $summary = escape_tags(trim($_POST['summary']));
    $desc = escape_tags(trim($_POST['desc']));
    $location = escape_tags(trim($_POST['location']));
    $type = escape_tags(trim($_POST['type']));
    require_once 'include/text.php';
    linkify_tags($a, $desc, local_channel());
    linkify_tags($a, $location, local_channel());
    //$action = ($event_hash == '') ? 'new' : "event/" . $event_hash;
    //fixme: this url gives a wsod if there is a linebreak detected in one of the variables ($desc or $location)
    //$onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish&type=$type";
    $onerror_url = $a->get_baseurl() . "/events";
    if (strcmp($finish, $start) < 0 && !$nofinish) {
        notice(t('Event can not end before it has started.') . EOL);
        if (intval($_REQUEST['preview'])) {
            echo t('Unable to generate preview.');
            killme();
        }
        goaway($onerror_url);
    }
    if (!$summary || !$start) {
        notice(t('Event title and start time are required.') . EOL);
        if (intval($_REQUEST['preview'])) {
            echo t('Unable to generate preview.');
            killme();
        }
        goaway($onerror_url);
    }
    $share = intval($_POST['share']) ? intval($_POST['share']) : 0;
    $channel = $a->get_channel();
    $acl = new AccessList(false);
    if ($event_id) {
        $x = q("select * from event where id = %d and uid = %d limit 1", intval($event_id), intval(local_channel()));
        if (!$x) {
            notice(t('Event not found.') . EOL);
            if (intval($_REQUEST['preview'])) {
                echo t('Unable to generate preview.');
                killme();
            }
            return;
        }
//.........这里部分代码省略.........
开发者ID:msooon,项目名称:hubzilla,代码行数:101,代码来源:events.php

示例4: events_post

function events_post(&$a)
{
    logger('post: ' . print_r($_REQUEST, true));
    if (!local_channel()) {
        return;
    }
    $event_id = x($_POST, 'event_id') ? intval($_POST['event_id']) : 0;
    $event_hash = x($_POST, 'event_hash') ? $_POST['event_hash'] : '';
    $xchan = x($_POST, 'xchan') ? dbesc($_POST['xchan']) : '';
    $uid = local_channel();
    $start_text = escape_tags($_REQUEST['start_text']);
    $finish_text = escape_tags($_REQUEST['finish_text']);
    $adjust = intval($_POST['adjust']);
    $nofinish = intval($_POST['nofinish']);
    $categories = escape_tags(trim($_POST['category']));
    // only allow editing your own events.
    if ($xchan && $xchan !== get_observer_hash()) {
        return;
    }
    // The default setting for the `private` field in event_store() is false, so mirror that
    $private_event = false;
    if ($start_text) {
        $start = $start_text;
    } else {
        $start = sprintf('%d-%d-%d %d:%d:0', $startyear, $startmonth, $startday, $starthour, $startminute);
    }
    if ($nofinish) {
        $finish = NULL_DATE;
    }
    if ($finish_text) {
        $finish = $finish_text;
    } else {
        $finish = sprintf('%d-%d-%d %d:%d:0', $finishyear, $finishmonth, $finishday, $finishhour, $finishminute);
    }
    if ($adjust) {
        $start = datetime_convert(date_default_timezone_get(), 'UTC', $start);
        if (!$nofinish) {
            $finish = datetime_convert(date_default_timezone_get(), 'UTC', $finish);
        }
    } else {
        $start = datetime_convert('UTC', 'UTC', $start);
        if (!$nofinish) {
            $finish = datetime_convert('UTC', 'UTC', $finish);
        }
    }
    // Don't allow the event to finish before it begins.
    // It won't hurt anything, but somebody will file a bug report
    // and we'll waste a bunch of time responding to it. Time that
    // could've been spent doing something else.
    $summary = escape_tags(trim($_POST['summary']));
    $desc = escape_tags(trim($_POST['desc']));
    $location = escape_tags(trim($_POST['location']));
    $type = 'event';
    require_once 'include/text.php';
    linkify_tags($a, $desc, local_channel());
    linkify_tags($a, $location, local_channel());
    $action = $event_hash == '' ? 'new' : "event/" . $event_hash;
    $onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary={$summary}&description={$desc}&location={$location}&start={$start_text}&finish={$finish_text}&adjust={$adjust}&nofinish={$nofinish}";
    if (strcmp($finish, $start) < 0 && !$nofinish) {
        notice(t('Event can not end before it has started.') . EOL);
        if (intval($_REQUEST['preview'])) {
            echo t('Unable to generate preview.');
            killme();
        }
        goaway($onerror_url);
    }
    if (!$summary || !$start) {
        notice(t('Event title and start time are required.') . EOL);
        if (intval($_REQUEST['preview'])) {
            echo t('Unable to generate preview.');
            killme();
        }
        goaway($onerror_url);
    }
    $share = intval($_POST['share']) ? intval($_POST['share']) : 0;
    $channel = $a->get_channel();
    if ($event_id) {
        $x = q("select * from event where id = %d and uid = %d limit 1", intval($event_id), intval(local_channel()));
        if (!$x) {
            notice(t('Event not found.') . EOL);
            if (intval($_REQUEST['preview'])) {
                echo t('Unable to generate preview.');
                killme();
            }
            return;
        }
        if ($x[0]['allow_cid'] === '<' . $channel['channel_hash'] . '>' && $x[0]['allow_gid'] === '' && $x[0]['deny_cid'] === '' && $x[0]['deny_gid'] === '') {
            $share = false;
        } else {
            $share = true;
            $str_group_allow = $x[0]['allow_gid'];
            $str_contact_allow = $x[0]['allow_cid'];
            $str_group_deny = $x[0]['deny_gid'];
            $str_contact_deny = $x[0]['deny_cid'];
            if (strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) {
                $private_event = true;
            }
        }
    } else {
        if ($share) {
//.........这里部分代码省略.........
开发者ID:einervonvielen,项目名称:redmatrix,代码行数:101,代码来源:events.php

示例5: diaspora_comment


//.........这里部分代码省略.........
        // should be in $msg['key']
        if ($importer['system']) {
            // don't relay to the sys channel
            logger('diaspora_comment: relay to sys channel blocked.');
            return;
        }
        $author_signature = base64_decode($author_signature);
        if (!rsa_verify($signed_data, $author_signature, $key, 'sha256')) {
            logger('diaspora_comment: comment author verification failed.');
            return;
        }
    }
    // Phew! Everything checks out. Now create an item.
    // Find the original comment author information.
    // We need this to make sure we display the comment author
    // information (name and avatar) correctly.
    if (strcasecmp($diaspora_handle, $msg['author']) == 0) {
        $person = $contact;
    } else {
        $person = find_diaspora_person_by_handle($diaspora_handle);
        if (!is_array($person)) {
            logger('diaspora_comment: unable to find author details');
            return;
        }
    }
    $body = diaspora2bb($text);
    $maxlen = get_max_import_size();
    if ($maxlen && mb_strlen($body) > $maxlen) {
        $body = mb_substr($body, 0, $maxlen, 'UTF-8');
        logger('message length exceeds max_import_size: truncated');
    }
    $datarray = array();
    // Look for tags and linkify them
    $results = linkify_tags(get_app(), $body, $importer['channel_id'], true);
    $datarray['term'] = array();
    if ($results) {
        foreach ($results as $result) {
            $success = $result['success'];
            if ($success['replaced']) {
                $datarray['term'][] = array('uid' => $importer['channel_id'], 'type' => $success['termtype'], 'otype' => TERM_OBJ_POST, 'term' => $success['term'], 'url' => $success['url']);
            }
        }
    }
    $cnt = preg_match_all('/@\\[url=(.*?)\\](.*?)\\[\\/url\\]/ism', $body, $matches, PREG_SET_ORDER);
    if ($cnt) {
        foreach ($matches as $mtch) {
            $datarray['term'][] = array('uid' => $importer['channel_id'], 'type' => TERM_MENTION, 'otype' => TERM_OBJ_POST, 'term' => $mtch[2], 'url' => $mtch[1]);
        }
    }
    $cnt = preg_match_all('/@\\[zrl=(.*?)\\](.*?)\\[\\/zrl\\]/ism', $body, $matches, PREG_SET_ORDER);
    if ($cnt) {
        foreach ($matches as $mtch) {
            // don't include plustags in the term
            $term = substr($mtch[2], -1, 1) === '+' ? substr($mtch[2], 0, -1) : $mtch[2];
            $datarray['term'][] = array('uid' => $importer['channel_id'], 'type' => TERM_MENTION, 'otype' => TERM_OBJ_POST, 'term' => $term, 'url' => $mtch[1]);
        }
    }
    $datarray['uid'] = $importer['channel_id'];
    $datarray['verb'] = ACTIVITY_POST;
    $datarray['mid'] = $guid;
    $datarray['parent_mid'] = $parent_item['mid'];
    // set the route to that of the parent so downstream hubs won't reject it.
    $datarray['route'] = $parent_item['route'];
    // No timestamps for comments? OK, we'll the use current time.
    $datarray['changed'] = $datarray['created'] = $datarray['edited'] = datetime_convert();
    $datarray['item_private'] = $parent_item['item_private'];
开发者ID:redmatrix,项目名称:red,代码行数:67,代码来源:diaspora.php

示例6: admin_page_site_post

 /**
  * @brief POST handler for Admin Site Page.
  *
  * @param App &$a
  */
 function admin_page_site_post(&$a)
 {
     if (!x($_POST, 'page_site')) {
         return;
     }
     check_form_security_token_redirectOnErr('/admin/site', 'admin_site');
     $sitename = x($_POST, 'sitename') ? notags(trim($_POST['sitename'])) : '';
     $banner = x($_POST, 'banner') ? trim($_POST['banner']) : false;
     $admininfo = x($_POST, 'admininfo') ? trim($_POST['admininfo']) : false;
     $language = x($_POST, 'language') ? notags(trim($_POST['language'])) : '';
     $theme = x($_POST, 'theme') ? notags(trim($_POST['theme'])) : '';
     $theme_mobile = x($_POST, 'theme_mobile') ? notags(trim($_POST['theme_mobile'])) : '';
     //	$site_channel			=	((x($_POST,'site_channel'))	? notags(trim($_POST['site_channel']))				: '');
     $maximagesize = x($_POST, 'maximagesize') ? intval(trim($_POST['maximagesize'])) : 0;
     $register_policy = x($_POST, 'register_policy') ? intval(trim($_POST['register_policy'])) : 0;
     $access_policy = x($_POST, 'access_policy') ? intval(trim($_POST['access_policy'])) : 0;
     $invite_only = x($_POST, 'invite_only') ? True : False;
     $abandon_days = x($_POST, 'abandon_days') ? intval(trim($_POST['abandon_days'])) : 0;
     $register_text = x($_POST, 'register_text') ? notags(trim($_POST['register_text'])) : '';
     $frontpage = x($_POST, 'frontpage') ? notags(trim($_POST['frontpage'])) : '';
     $mirror_frontpage = x($_POST, 'mirror_frontpage') ? intval(trim($_POST['mirror_frontpage'])) : 0;
     $directory_server = x($_POST, 'directory_server') ? trim($_POST['directory_server']) : '';
     $allowed_sites = x($_POST, 'allowed_sites') ? notags(trim($_POST['allowed_sites'])) : '';
     $allowed_email = x($_POST, 'allowed_email') ? notags(trim($_POST['allowed_email'])) : '';
     $not_allowed_email = x($_POST, 'not_allowed_email') ? notags(trim($_POST['not_allowed_email'])) : '';
     $force_publish = x($_POST, 'publish_all') ? True : False;
     $disable_discover_tab = x($_POST, 'disable_discover_tab') ? False : True;
     $login_on_homepage = x($_POST, 'login_on_homepage') ? True : False;
     $enable_context_help = x($_POST, 'enable_context_help') ? True : False;
     $global_directory = x($_POST, 'directory_submit_url') ? notags(trim($_POST['directory_submit_url'])) : '';
     $no_community_page = !(x($_POST, 'no_community_page') ? True : False);
     $default_expire_days = array_key_exists('default_expire_days', $_POST) ? intval($_POST['default_expire_days']) : 0;
     $verifyssl = x($_POST, 'verifyssl') ? True : False;
     $proxyuser = x($_POST, 'proxyuser') ? notags(trim($_POST['proxyuser'])) : '';
     $proxy = x($_POST, 'proxy') ? notags(trim($_POST['proxy'])) : '';
     $timeout = x($_POST, 'timeout') ? intval(trim($_POST['timeout'])) : 60;
     $delivery_interval = x($_POST, 'delivery_interval') ? intval(trim($_POST['delivery_interval'])) : 0;
     $delivery_batch_count = x($_POST, 'delivery_batch_count') && $_POST['delivery_batch_count'] > 0 ? intval(trim($_POST['delivery_batch_count'])) : 1;
     $poll_interval = x($_POST, 'poll_interval') ? intval(trim($_POST['poll_interval'])) : 0;
     $maxloadavg = x($_POST, 'maxloadavg') ? intval(trim($_POST['maxloadavg'])) : 50;
     $feed_contacts = x($_POST, 'feed_contacts') ? intval($_POST['feed_contacts']) : 0;
     $verify_email = x($_POST, 'verify_email') ? 1 : 0;
     set_config('system', 'feed_contacts', $feed_contacts);
     set_config('system', 'delivery_interval', $delivery_interval);
     set_config('system', 'delivery_batch_count', $delivery_batch_count);
     set_config('system', 'poll_interval', $poll_interval);
     set_config('system', 'maxloadavg', $maxloadavg);
     set_config('system', 'frontpage', $frontpage);
     set_config('system', 'mirror_frontpage', $mirror_frontpage);
     set_config('system', 'sitename', $sitename);
     set_config('system', 'login_on_homepage', $login_on_homepage);
     set_config('system', 'enable_context_help', $enable_context_help);
     set_config('system', 'verify_email', $verify_email);
     set_config('system', 'default_expire_days', $default_expire_days);
     if ($directory_server) {
         set_config('system', 'directory_server', $directory_server);
     }
     if ($banner == '') {
         del_config('system', 'banner');
     } else {
         set_config('system', 'banner', $banner);
     }
     if ($admininfo == '') {
         del_config('system', 'admininfo');
     } else {
         require_once 'include/text.php';
         linkify_tags($a, $admininfo, local_channel());
         set_config('system', 'admininfo', $admininfo);
     }
     set_config('system', 'language', $language);
     set_config('system', 'theme', $theme);
     if ($theme_mobile === '---') {
         del_config('system', 'mobile_theme');
     } else {
         set_config('system', 'mobile_theme', $theme_mobile);
     }
     //	set_config('system','site_channel', $site_channel);
     set_config('system', 'maximagesize', $maximagesize);
     set_config('system', 'register_policy', $register_policy);
     set_config('system', 'invitation_only', $invite_only);
     set_config('system', 'access_policy', $access_policy);
     set_config('system', 'account_abandon_days', $abandon_days);
     set_config('system', 'register_text', $register_text);
     set_config('system', 'allowed_sites', $allowed_sites);
     set_config('system', 'allowed_email', $allowed_email);
     set_config('system', 'not_allowed_email', $not_allowed_email);
     set_config('system', 'publish_all', $force_publish);
     set_config('system', 'disable_discover_tab', $disable_discover_tab);
     if ($global_directory == '') {
         del_config('system', 'directory_submit_url');
     } else {
         set_config('system', 'directory_submit_url', $global_directory);
     }
     set_config('system', 'no_community_page', $no_community_page);
     set_config('system', 'no_utf', $no_utf);
//.........这里部分代码省略.........
开发者ID:anmol26s,项目名称:hubzilla-yunohost,代码行数:101,代码来源:Admin.php

示例7: post


//.........这里部分代码省略.........
                 $name = $orig[0]['fullname'];
             }
         }
         $pdesc = escape_tags(trim($_POST['pdesc']));
         $gender = escape_tags(trim($_POST['gender']));
         $address = escape_tags(trim($_POST['address']));
         $locality = escape_tags(trim($_POST['locality']));
         $region = escape_tags(trim($_POST['region']));
         $postal_code = escape_tags(trim($_POST['postal_code']));
         $country_name = escape_tags(trim($_POST['country_name']));
         $keywords = escape_tags(trim($_POST['keywords']));
         $marital = escape_tags(trim($_POST['marital']));
         $howlong = escape_tags(trim($_POST['howlong']));
         $sexual = escape_tags(trim($_POST['sexual']));
         $homepage = escape_tags(trim($_POST['homepage']));
         $hometown = escape_tags(trim($_POST['hometown']));
         $politic = escape_tags(trim($_POST['politic']));
         $religion = escape_tags(trim($_POST['religion']));
         $likes = fix_mce_lf(escape_tags(trim($_POST['likes'])));
         $dislikes = fix_mce_lf(escape_tags(trim($_POST['dislikes'])));
         $about = fix_mce_lf(escape_tags(trim($_POST['about'])));
         $interest = fix_mce_lf(escape_tags(trim($_POST['interest'])));
         $contact = fix_mce_lf(escape_tags(trim($_POST['contact'])));
         $channels = fix_mce_lf(escape_tags(trim($_POST['channels'])));
         $music = fix_mce_lf(escape_tags(trim($_POST['music'])));
         $book = fix_mce_lf(escape_tags(trim($_POST['book'])));
         $tv = fix_mce_lf(escape_tags(trim($_POST['tv'])));
         $film = fix_mce_lf(escape_tags(trim($_POST['film'])));
         $romance = fix_mce_lf(escape_tags(trim($_POST['romance'])));
         $work = fix_mce_lf(escape_tags(trim($_POST['work'])));
         $education = fix_mce_lf(escape_tags(trim($_POST['education'])));
         $hide_friends = intval($_POST['hide_friends']) ? 1 : 0;
         require_once 'include/text.php';
         linkify_tags($a, $likes, local_channel());
         linkify_tags($a, $dislikes, local_channel());
         linkify_tags($a, $about, local_channel());
         linkify_tags($a, $interest, local_channel());
         linkify_tags($a, $interest, local_channel());
         linkify_tags($a, $contact, local_channel());
         linkify_tags($a, $channels, local_channel());
         linkify_tags($a, $music, local_channel());
         linkify_tags($a, $book, local_channel());
         linkify_tags($a, $tv, local_channel());
         linkify_tags($a, $film, local_channel());
         linkify_tags($a, $romance, local_channel());
         linkify_tags($a, $work, local_channel());
         linkify_tags($a, $education, local_channel());
         $with = x($_POST, 'with') ? escape_tags(trim($_POST['with'])) : '';
         if (!strlen($howlong)) {
             $howlong = NULL_DATE;
         } else {
             $howlong = datetime_convert(date_default_timezone_get(), 'UTC', $howlong);
         }
         // linkify the relationship target if applicable
         $withchanged = false;
         if (strlen($with)) {
             if ($with != strip_tags($orig[0]['partner'])) {
                 $withchanged = true;
                 $prf = '';
                 $lookup = $with;
                 if (strpos($lookup, '@') === 0) {
                     $lookup = substr($lookup, 1);
                 }
                 $lookup = str_replace('_', ' ', $lookup);
                 $newname = $lookup;
                 $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash WHERE xchan_name = '%s' AND abook_channel = %d LIMIT 1", dbesc($newname), intval(local_channel()));
开发者ID:einervonvielen,项目名称:hubzilla,代码行数:67,代码来源:Profiles.php

示例8: mail_post

function mail_post(&$a)
{
    if (!local_channel()) {
        return;
    }
    $replyto = x($_REQUEST, 'replyto') ? notags(trim($_REQUEST['replyto'])) : '';
    $subject = x($_REQUEST, 'subject') ? notags(trim($_REQUEST['subject'])) : '';
    $body = x($_REQUEST, 'body') ? escape_tags(trim($_REQUEST['body'])) : '';
    $recipient = x($_REQUEST, 'messageto') ? notags(trim($_REQUEST['messageto'])) : '';
    $rstr = x($_REQUEST, 'messagerecip') ? notags(trim($_REQUEST['messagerecip'])) : '';
    $expires = x($_REQUEST, 'expires') ? datetime_convert(date_default_timezone_get(), 'UTC', $_REQUEST['expires']) : NULL_DATE;
    // If we have a raw string for a recipient which hasn't been auto-filled,
    // it means they probably aren't in our address book, hence we don't know
    // if we have permission to send them private messages.
    // finger them and find out before we try and send it.
    if (!$recipient) {
        $channel = $a->get_channel();
        $ret = zot_finger($rstr, $channel);
        if (!$ret['success']) {
            notice(t('Unable to lookup recipient.') . EOL);
            return;
        }
        $j = json_decode($ret['body'], true);
        logger('message_post: lookup: ' . $url . ' ' . print_r($j, true));
        if (!($j['success'] && $j['guid'])) {
            notice(t('Unable to communicate with requested channel.'));
            return;
        }
        $x = import_xchan($j);
        if (!$x['success']) {
            notice(t('Cannot verify requested channel.'));
            return;
        }
        $recipient = $x['hash'];
        $their_perms = 0;
        $global_perms = get_perms();
        if ($j['permissions']['data']) {
            $permissions = crypto_unencapsulate($j['permissions'], $channel['channel_prvkey']);
            if ($permissions) {
                $permissions = json_decode($permissions);
            }
            logger('decrypted permissions: ' . print_r($permissions, true), LOGGER_DATA);
        } else {
            $permissions = $j['permissions'];
        }
        foreach ($permissions as $k => $v) {
            if ($v) {
                $their_perms = $their_perms | intval($global_perms[$k][1]);
            }
        }
        if (!($their_perms & PERMS_W_MAIL)) {
            notice(t('Selected channel has private message restrictions. Send failed.'));
            // reported issue: let's still save the message and continue. We'll just tell them
            // that nothing useful is likely to happen. They might have spent hours on it.
            //			return;
        }
    }
    //	if(feature_enabled(local_channel(),'richtext')) {
    //		$body = fix_mce_lf($body);
    //	}
    require_once 'include/text.php';
    linkify_tags($a, $body, local_channel());
    if (!$recipient) {
        notice('No recipient found.');
        $a->argc = 2;
        $a->argv[1] = 'new';
        return;
    }
    // We have a local_channel, let send_message use the session channel and save a lookup
    $ret = send_message(0, $recipient, $body, $subject, $replyto, $expires);
    if ($ret['success']) {
        xchan_mail_query($ret['mail']);
        build_sync_packet(0, array('conv' => array($ret['conv']), 'mail' => array(encode_mail($ret['mail'], true))));
    } else {
        notice($ret['message']);
    }
    goaway(z_root() . '/mail/combined');
}
开发者ID:23n,项目名称:hubzilla,代码行数:78,代码来源:mail.php

示例9: post


//.........这里部分代码省略.........
                     }
                     $width = $ph->getWidth();
                     $height = $ph->getHeight();
                     $x = q("update photo set content = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and imgscale = 3", dbescbin($ph->imageString()), intval($height), intval($width), dbesc($resource_id), intval($page_owner_uid));
                 }
             }
         }
         $p = q("SELECT mimetype, is_nsfw, description, resource_id, imgscale, allow_cid, allow_gid, deny_cid, deny_gid FROM photo WHERE resource_id = '%s' AND uid = %d ORDER BY imgscale DESC", dbesc($resource_id), intval($page_owner_uid));
         if ($p) {
             $ext = $phototypes[$p[0]['mimetype']];
             $r = q("UPDATE `photo` SET `description` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource_id` = '%s' AND `uid` = %d", dbesc($desc), dbesc($perm['allow_cid']), dbesc($perm['allow_gid']), dbesc($perm['deny_cid']), dbesc($perm['deny_gid']), dbesc($resource_id), intval($page_owner_uid));
         }
         $item_private = $str_contact_allow || $str_group_allow || $str_contact_deny || $str_group_deny ? true : false;
         $old_is_nsfw = $p[0]['is_nsfw'];
         if ($old_is_nsfw != $is_nsfw) {
             $r = q("update photo set is_nsfw = %d where resource_id = '%s' and uid = %d", intval($is_nsfw), dbesc($resource_id), intval($page_owner_uid));
         }
         /* Don't make the item visible if the only change was the album name */
         $visibility = 0;
         if ($p[0]['description'] !== $desc || strlen($rawtags)) {
             $visibility = 1;
         }
         if (!$item_id) {
             $item_id = photos_create_item(\App::$data['channel'], get_observer_hash(), $p[0], $visibility);
         }
         if ($item_id) {
             $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($item_id), intval($page_owner_uid));
             if ($r) {
                 $old_tag = $r[0]['tag'];
                 $old_inform = $r[0]['inform'];
             }
         }
         // make sure the linked item has the same permissions as the photo regardless of any other changes
         $x = q("update item set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', item_private = %d\n\t\t\t\twhere id = %d", dbesc($perm['allow_cid']), dbesc($perm['allow_gid']), dbesc($perm['deny_cid']), dbesc($perm['deny_gid']), intval($acl->is_private()), intval($item_id));
         // make sure the attach has the same permissions as the photo regardless of any other changes
         $x = q("update attach set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where hash = '%s' and uid = %d and is_photo = 1", dbesc($perm['allow_cid']), dbesc($perm['allow_gid']), dbesc($perm['deny_cid']), dbesc($perm['deny_gid']), dbesc($resource_id), intval($page_owner_uid));
         if (strlen($rawtags)) {
             $str_tags = '';
             $inform = '';
             // if the new tag doesn't have a namespace specifier (@foo or #foo) give it a mention
             $x = substr($rawtags, 0, 1);
             if ($x !== '@' && $x !== '#') {
                 $rawtags = '@' . $rawtags;
             }
             require_once 'include/text.php';
             $profile_uid = \App::$profile['profile_uid'];
             $results = linkify_tags($a, $rawtags, local_channel() ? local_channel() : $profile_uid);
             $success = $results['success'];
             $post_tags = array();
             foreach ($results as $result) {
                 $success = $result['success'];
                 if ($success['replaced']) {
                     $post_tags[] = array('uid' => $profile_uid, 'ttype' => $success['termtype'], 'otype' => TERM_OBJ_POST, 'term' => $success['term'], 'url' => $success['url']);
                 }
             }
             $r = q("select * from item where id = %d and uid = %d limit 1", intval($item_id), intval($page_owner_uid));
             if ($r) {
                 $r = fetch_post_tags($r, true);
                 $datarray = $r[0];
                 if ($post_tags) {
                     if (!array_key_exists('term', $datarray) || !is_array($datarray['term'])) {
                         $datarray['term'] = $post_tags;
                     } else {
                         $datarray['term'] = array_merge($datarray['term'], $post_tags);
                     }
                 }
                 item_store_update($datarray, $execflag);
             }
         }
         $sync = attach_export_data(\App::$data['channel'], $resource_id);
         if ($sync) {
             build_sync_packet($page_owner_uid, array('file' => array($sync)));
         }
         goaway(z_root() . '/' . $_SESSION['photo_return']);
         return;
         // NOTREACHED
     }
     /**
      * default post action - upload a photo
      */
     $channel = \App::$data['channel'];
     $observer = \App::$data['observer'];
     $_REQUEST['source'] = 'photos';
     require_once 'include/attach.php';
     if (!local_channel()) {
         $_REQUEST['contact_allow'] = expand_acl($channel['channel_allow_cid']);
         $_REQUEST['group_allow'] = expand_acl($channel['channel_allow_gid']);
         $_REQUEST['contact_deny'] = expand_acl($channel['channel_deny_cid']);
         $_REQUEST['group_deny'] = expand_acl($channel['channel_deny_gid']);
     }
     $r = attach_store($channel, get_observer_hash(), '', $_REQUEST);
     if (!$r['success']) {
         notice($r['message'] . EOL);
     }
     if ($_REQUEST['newalbum']) {
         goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/album/' . bin2hex($_REQUEST['newalbum']));
     } else {
         goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/album/' . bin2hex(datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y')));
     }
 }
开发者ID:phellmes,项目名称:hubzilla,代码行数:101,代码来源:Photos.php

示例10: photo_upload


//.........这里部分代码省略.........
    }
    $p['imgscale'] = 2;
    $r2 = $ph->save($p);
    $link[2] = array('rel' => 'alternate', 'type' => 'text/html', 'href' => z_root() . '/photo/' . $photo_hash . '-2.' . $ph->getExt(), 'width' => $ph->getWidth(), 'height' => $ph->getHeight());
    if (!$r2) {
        $errors = true;
    }
    if (($width > 320 || $height > 320) && !$errors) {
        $ph->scaleImage(320);
    }
    $p['imgscale'] = 3;
    $r3 = $ph->save($p);
    $link[3] = array('rel' => 'alternate', 'type' => 'text/html', 'href' => z_root() . '/photo/' . $photo_hash . '-3.' . $ph->getExt(), 'width' => $ph->getWidth(), 'height' => $ph->getHeight());
    if (!$r3) {
        $errors = true;
    }
    if ($errors) {
        q("delete from photo where resource_id = '%s' and uid = %d", dbesc($photo_hash), intval($channel_id));
        $ret['message'] = t('Photo storage failed.');
        logger('photo_upload: photo store failed.');
        call_hooks('photo_upload_end', $ret);
        return $ret;
    }
    $item_hidden = $visible ? 0 : 1;
    $lat = $lon = null;
    if ($exif && $exif['GPS']) {
        if (feature_enabled($channel_id, 'photo_location')) {
            $lat = getGps($exif['GPS']['GPSLatitude'], $exif['GPS']['GPSLatitudeRef']);
            $lon = getGps($exif['GPS']['GPSLongitude'], $exif['GPS']['GPSLongitudeRef']);
        }
    }
    $title = $args['description'] ? $args['description'] : $args['filename'];
    $large_photos = feature_enabled($channel['channel_id'], 'large_photos');
    linkify_tags($a, $args['body'], $channel_id);
    if ($large_photos) {
        $scale = 1;
        $width = $link[1]['width'];
        $height = $link[1]['height'];
        $tag = $r1 ? '[zmg=' . $width . 'x' . $height . ']' : '[zmg]';
    } else {
        $scale = 2;
        $width = $link[2]['width'];
        $height = $link[2]['height'];
        $tag = $r2 ? '[zmg=' . $width . 'x' . $height . ']' : '[zmg]';
    }
    $author_link = '[zrl=' . z_root() . '/channel/' . $channel['channel_address'] . ']' . $channel['channel_name'] . '[/zrl]';
    $photo_link = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']' . t('a new photo') . '[/zrl]';
    $album_link = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/album/' . bin2hex($album) . ']' . (strlen($album) ? $album : '/') . '[/zrl]';
    $activity_format = sprintf(t('%1$s posted %2$s to %3$s', 'photo_upload'), $author_link, $photo_link, $album_link);
    $summary = ($args['body'] ? $args['body'] : '') . '[footer]' . $activity_format . '[/footer]';
    $obj_body = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']' . $tag . z_root() . "/photo/{$photo_hash}-{$scale}." . $ph->getExt() . '[/zmg]' . '[/zrl]';
    // Create item object
    $object = array('type' => ACTIVITY_OBJ_PHOTO, 'title' => $title, 'created' => $p['created'], 'edited' => $p['edited'], 'id' => z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash, 'link' => $link, 'body' => $obj_body);
    $target = array('type' => ACTIVITY_OBJ_ALBUM, 'title' => $album ? $album : '/', 'id' => z_root() . '/photos/' . $channel['channel_address'] . '/album/' . bin2hex($album));
    // Create item container
    if ($args['item']) {
        foreach ($args['item'] as $i) {
            $item = get_item_elements($i);
            $force = false;
            if ($item['mid'] === $item['parent_mid']) {
                $item['body'] = $summary;
                $item['obj_type'] = ACTIVITY_OBJ_PHOTO;
                $item['obj'] = json_encode($object);
                $item['tgt_type'] = ACTIVITY_OBJ_ALBUM;
                $item['target'] = json_encode($target);
                if ($item['author_xchan'] === $channel['channel_hash']) {
开发者ID:einervonvielen,项目名称:hubzilla,代码行数:67,代码来源:photos.php

示例11: post


//.........这里部分代码省略.........
         //		$plaintext = ((feature_enabled($profile_uid,'richtext')) ? false : true);
         //		if((! $parent) && (! $api_source) && (! $plaintext)) {
         //			$body = fix_mce_lf($body);
         //		}
         // If we're sending a private top-level message with a single @-taggable channel as a recipient, @-tag it, if our pconfig is set.
         if (!$parent && get_pconfig($profile_uid, 'system', 'tagifonlyrecip') && substr_count($str_contact_allow, '<') == 1 && $str_group_allow == '' && $str_contact_deny == '' && $str_group_deny == '') {
             $x = q("select abook_id, abconfig.v from abook left join abconfig on abook_xchan = abconfig.xchan and abook_channel = abconfig.chan and cat= 'their_perms' and abconfig.k = 'tag_deliver' and abconfig.v = 1 and abook_xchan = '%s' and abook_channel = %d limit 1", dbesc(str_replace(array('<', '>'), array('', ''), $str_contact_allow)), intval($profile_uid));
             if ($x) {
                 $body .= "\n\n@group+" . $x[0]['abook_id'] . "\n";
             }
         }
         /**
          * fix naked links by passing through a callback to see if this is a hubzilla site
          * (already known to us) which will get a zrl, otherwise link with url, add bookmark tag to both.
          * First protect any url inside certain bbcode tags so we don't double link it.
          */
         $body = preg_replace_callback('/\\[code(.*?)\\[\\/(code)\\]/ism', '\\red_escape_codeblock', $body);
         $body = preg_replace_callback('/\\[url(.*?)\\[\\/(url)\\]/ism', '\\red_escape_codeblock', $body);
         $body = preg_replace_callback('/\\[zrl(.*?)\\[\\/(zrl)\\]/ism', '\\red_escape_codeblock', $body);
         $body = preg_replace_callback("/([^\\]\\='" . '"' . "\\/]|^|\\#\\^)(https?\\:\\/\\/[a-zA-Z0-9\\:\\/\\-\\?\\&\\;\\.\\=\\@\\_\\~\\#\\%\$\\!\\+\\,]+)/ism", 'nakedoembed', $body);
         $body = preg_replace_callback("/([^\\]\\='" . '"' . "\\/]|^|\\#\\^)(https?\\:\\/\\/[a-zA-Z0-9\\:\\/\\-\\?\\&\\;\\.\\=\\@\\_\\~\\#\\%\$\\!\\+\\,]+)/ism", '\\red_zrl_callback', $body);
         $body = preg_replace_callback('/\\[\\$b64zrl(.*?)\\[\\/(zrl)\\]/ism', '\\red_unescape_codeblock', $body);
         $body = preg_replace_callback('/\\[\\$b64url(.*?)\\[\\/(url)\\]/ism', '\\red_unescape_codeblock', $body);
         $body = preg_replace_callback('/\\[\\$b64code(.*?)\\[\\/(code)\\]/ism', '\\red_unescape_codeblock', $body);
         // fix any img tags that should be zmg
         $body = preg_replace_callback('/\\[img(.*?)\\](.*?)\\[\\/img\\]/ism', '\\red_zrlify_img_callback', $body);
         $body = bb_translate_video($body);
         /**
          * Fold multi-line [code] sequences
          */
         $body = preg_replace('/\\[\\/code\\]\\s*\\[code\\]/ism', "\n", $body);
         $body = scale_external_images($body, false);
         // Look for tags and linkify them
         $results = linkify_tags($a, $body, $uid ? $uid : $profile_uid);
         if ($results) {
             // Set permissions based on tag replacements
             set_linkified_perms($results, $str_contact_allow, $str_group_allow, $profile_uid, $parent_item, $private);
             $post_tags = array();
             foreach ($results as $result) {
                 $success = $result['success'];
                 if ($success['replaced']) {
                     $post_tags[] = array('uid' => $profile_uid, 'ttype' => $success['termtype'], 'otype' => TERM_OBJ_POST, 'term' => $success['term'], 'url' => $success['url']);
                 }
             }
         }
         /**
          *
          * When a photo was uploaded into the message using the (profile wall) ajax 
          * uploader, The permissions are initially set to disallow anybody but the
          * owner from seeing it. This is because the permissions may not yet have been
          * set for the post. If it's private, the photo permissions should be set
          * appropriately. But we didn't know the final permissions on the post until
          * now. So now we'll look for links of uploaded photos and attachments that are in the
          * post and set them to the same permissions as the post itself.
          *
          * If the post was end-to-end encrypted we can't find images and attachments in the body,
          * use our media_str input instead which only contains these elements - but only do this
          * when encrypted content exists because the photo/attachment may have been removed from 
          * the post and we should keep it private. If it's encrypted we have no way of knowing
          * so we'll set the permissions regardless and realise that the media may not be 
          * referenced in the post. 
          *
          * What is preventing us from being able to upload photos into comments is dealing with
          * the photo and attachment permissions, since we don't always know who was in the 
          * distribution for the top level post.
          * 
开发者ID:phellmes,项目名称:hubzilla,代码行数:67,代码来源:Item.php


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