Exemplo n.º 1
0
function bp_links_embed_handle_upload(BP_Links_Link $link, $embed_code)
{
    if (!empty($embed_code)) {
        try {
            // try to locate a service to handle this html code
            $service = BP_Links_Embed::FromHtml($embed_code);
            // did we find a service?
            if ($service instanceof BP_Links_Embed_Service) {
                // download image for avatar creation, attach embed service
                if (bp_links_embed_download_avatar($service->image_url()) && $link->embed_attach($service)) {
                    // set status to partial and save link
                    if ($link->embed_status_set_partial(true)) {
                        return true;
                    } else {
                        // failed to save link
                        bp_core_add_message(sprintf('%s %s', __('There was an error saving link avatar.', 'buddypress-links'), __('Please try again.', 'buddypress-links')), 'error');
                    }
                } else {
                    // failed to download remote image
                    bp_core_add_message(sprintf('%s %s', __('Downloading image from remote website failed.', 'buddypress-links'), __('Please try again.', 'buddypress-links')), 'error');
                }
            } else {
                // no service could handle the html code
                bp_core_add_message(__('The embedding code you entered was not recognized.', 'buddypress-links'), 'error');
            }
        } catch (BP_Links_Embed_User_Exception $e) {
            bp_core_add_message($e->getMessage(), 'error');
        } catch (BP_Links_Embed_Fatal_Exception $e) {
            throw $e;
        }
    }
    return false;
}