Forum Replies Created

Viewing 9 replies - 31 through 39 (of 39 total)
  • Thread Starter mrmut

    (@mrmut)

    resolved

    Thread Starter mrmut

    (@mrmut)

    Yup – the mails were being filtered as SPAM. It is a cluster protection feature.

    I have solved the problem by using WP-Mail-SMTP plugin, and setting up external SMTP server with authentication (without SSL).

    Now everything works fine.

    Thank you for your support, Jetpack is great plugin.

    Thread Starter mrmut

    (@mrmut)

    That is exactly the problem. The outer container is OK, but the table has wrong width.

    Thread Starter mrmut

    (@mrmut)

    WOW! I didn’t think of that one! Thanks a lot!! KUDOS!

    Thread Starter mrmut

    (@mrmut)

    Thanks for a timely reply!

    Sorry about the link, I cant share it publicly yet.

    I am using the Rainbow template.

    Here is the screenshot of how it looks:

    screenshot (it is a shortened dropbox link, you need to skip the add)

    I just checked it, and it seems that Java script adds more padding than there should be. The inline heights are fine, and initially the page loads fine, but than the tables flash and grow (javasript loads).

    Forum: Plugins
    In reply to: [Pixabay Images] Full size
    Thread Starter mrmut

    (@mrmut)

    Solved it.
    To add HD option, your pixababy-images.php v2.14 code with:

    It adds FullHD option.

    Quick and Dirty.

    <?php
    
    /*
    Plugin Name: Pixabay Images FullHD
    Plugin URI: https://pixabay.com/blog/posts/p-36/
    Description: Find quality public domain images from Pixabay and upload them with just one click.
    Version: 2.14
    Author: Simon Steinberger
    Author URI: https://pixabay.com/users/Simon/
    License: GPLv2
    */
    
    // i18n
    function pixabay_images_load_textdomain() { load_plugin_textdomain('pixabay_images', false, dirname(plugin_basename(__FILE__ )).'/langs/'); }
    add_action('plugins_loaded', 'pixabay_images_load_textdomain');
    
    // add settings
    include(plugin_dir_path(__FILE__).'settings.php');
    
    function pixabay_images_enqueue_jquery() { wp_enqueue_script('jquery'); }
    add_action('admin_enqueue_scripts', 'pixabay_images_enqueue_jquery');
    
    // add tab to media upload window
    function media_upload_tabs_handler($tabs) { $tabs['pixabaytab'] = __('Pixabay Images', 'pixabay_images'); return $tabs; }
    add_filter('media_upload_tabs', 'media_upload_tabs_handler');
    
    // add button next to "Add Media"
    $pixabay_images_settings = get_option('pixabay_images_options');
    if (!$pixabay_images_settings['button'] | $pixabay_images_settings['button']=='true') {
        function media_buttons_context_handler($editor_id='') { return '<a href="'.add_query_arg('tab', 'pixabaytab', esc_url(get_upload_iframe_src())).'" id="'.esc_attr($editor_id).'-add_media" class="thickbox button" title="'.esc_attr__('Pixabay Images', 'pixabay_images').'"><img style="position:relative;top:-2px" src="'.plugin_dir_url(__FILE__).'favicon.png'.'"> Pixabay</a>'; }
        add_filter('media_buttons_context', 'media_buttons_context_handler');
    }
    
    // media tab action
    // function must begin with "media_" so wp_iframe() adds media css styles
    function media_pixabay_images_tab() {
        media_upload_header();
        $pixabay_images_settings = get_option('pixabay_images_options');
    	?>
            <style scope>
                html, body { background: #fff; }
                #paginator .button { margin: 0 5px 5px 0; }
                .thumb { float: left; height: 150px; line-height: 150px; text-align: center; margin: 0 10px 2px 0; }
                .thumb img { vertical-align: middle; }
                .thumb.small { height: 110px; line-height: 110px; text-align: center; margin: 0 8px 2px 0; }
                .thumb.small img { height: auto !important; width: auto !important; max-height: 110px; max-width: 110px; vertical-align: middle; }
                .thumb .preview img { max-height: none; max-width: none; }
                .preview {
                    z-index: 99999; position: absolute; background: #fff; border: 10px solid #fff; border: 10px solid rgba(255,255,255,.95);
                    -webkit-background-clip: padding-box; background-clip: padding-box;
                    border-radius: 2px; -moz-border-radius: 2px; -webkit-border-radius: 2px;
                    -webkit-box-shadow: 0 1px 8px rgba(0,0,0,.3); -moz-box-shadow: 0 1px 8px rgba(0,0,0,.3); box-shadow: 0 1px 8px rgba(0,0,0,.3);
                    line-height: 1;
                }
                .preview img { position: absolute; left: 0; top: 0; }
            </style>
            <div style="padding:10px 15px 25px">
                <form id="pixabay_images_form" style="margin:0">
                    <p><input id="q" type="text" value="" style="width:100%;max-width:500px;padding:7px 9px"></p>
                    <p>
                        <label style="margin-right:15px"><input type="checkbox" id="filter_photos"<?= $pixabay_images_settings['image_type']=='clipart'?'':' checked="checked"'; ?>><?= _e('Photos', 'pixabay_images'); ?></label>
                        <label style="margin-right:20px"><input type="checkbox" id="filter_cliparts"<?= $pixabay_images_settings['image_type']=='photo'?'':' checked="checked"'; ?>><?= _e('Cliparts', 'pixabay_images'); ?></label>
                        <span style="margin-right:20px">|</span>
                        <label style="margin-right:15px"><input type="checkbox" id="filter_horizontal"<?= $pixabay_images_settings['orientation']=='vertical'?'':' checked="checked"'; ?>><?= _e('Horizontal', 'pixabay_images'); ?></label>
                        <label style="margin-right:25px"><input type="checkbox" id="filter_vertical"<?= $pixabay_images_settings['orientation']=='horizontal'?'':' checked="checked"'; ?>><?= _e('Vertical', 'pixabay_images'); ?></label>
                        <a href="options-general.php?page=pixabay_images_settings" target="_blank"><?= _e('Settings', 'pixabay_images'); ?></a>
                    </p>
                    <input id="submit_search" class="button" type="submit" value="<?= _e('Search', 'pixabay_images'); ?>">
                </form>
                <div id="pixabay_results" style="margin-top:25px;padding-top:25px;border-top:1px solid #ddd"></div>
            </div>
            <script>
                function escapejs(s){return s.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'&quot;').replace(/'/g,"\\'");}
                // hoverIntent r7
                (function(e){e.fn.hoverIntent=function(t,n,r){var i={interval:100,sensitivity:7,timeout:0};if(typeof t==="object"){i=e.extend(i,t)}else if(e.isFunction(n)){i=e.extend(i,{over:t,out:n,selector:r})}else{i=e.extend(i,{over:t,out:t,selector:n})}var s,o,u,a;var f=function(e){s=e.pageX;o=e.pageY};var l=function(t,n){n.hoverIntent_t=clearTimeout(n.hoverIntent_t);if(Math.abs(u-s)+Math.abs(a-o)<i.sensitivity){e(n).off("mousemove.hoverIntent",f);n.hoverIntent_s=1;return i.over.apply(n,[t])}else{u=s;a=o;n.hoverIntent_t=setTimeout(function(){l(t,n)},i.interval)}};var c=function(e,t){t.hoverIntent_t=clearTimeout(t.hoverIntent_t);t.hoverIntent_s=0;return i.out.apply(t,[e])};var h=function(t){var n=jQuery.extend({},t);var r=this;if(r.hoverIntent_t){r.hoverIntent_t=clearTimeout(r.hoverIntent_t)}if(t.type=="mouseenter"){u=n.pageX;a=n.pageY;e(r).on("mousemove.hoverIntent",f);if(r.hoverIntent_s!=1){r.hoverIntent_t=setTimeout(function(){l(n,r)},i.interval)}}else{e(r).off("mousemove.hoverIntent",f);if(r.hoverIntent_s==1){r.hoverIntent_t=setTimeout(function(){c(n,r)},i.timeout)}}};return this.on({"mouseenter.hoverIntent":h,"mouseleave.hoverIntent":h},i.selector)}})(jQuery)
    
                var post_id=<?=absint($_REQUEST['post_id']) ?>,
                    lang='<?= $pixabay_images_settings['language']?$pixabay_images_settings['language']:substr(get_locale(), 0, 2) ?>',
                    per_page=<?=$pixabay_images_settings['per_page']?$pixabay_images_settings['per_page']:30 ?>,
                    form = jQuery('#pixabay_images_form'), hits, cache, resizeTimer, q, image_type, orientation;
    
                function resized() { if (jQuery(window).width() < 768) jQuery('.thumb').addClass('small'); else jQuery('.thumb').removeClass('small'); }
                setTimeout(function(){ jQuery(window).resize(); }, 300);
                jQuery(window).resize(function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(resized, 250); });
    
                form.submit(function(e){
                    e.preventDefault();
                    cache = {};
                    q = jQuery('#q', form).val();
                    if (jQuery('#filter_photos', form).is(':checked') && !jQuery('#filter_cliparts', form).is(':checked')) image_type = 'photo';
                    else if (!jQuery('#filter_photos', form).is(':checked') && jQuery('#filter_cliparts', form).is(':checked')) image_type = 'clipart';
                    else image_type = 'all';
                    if (jQuery('#filter_horizontal', form).is(':checked') && !jQuery('#filter_vertical', form).is(':checked')) orientation = 'horizontal';
                    else if (!jQuery('#filter_horizontal', form).is(':checked') && jQuery('#filter_vertical', form).is(':checked')) orientation = 'vertical';
                    else orientation = 'all';
                    call_api(q, 1);
                });
    
                function call_api(q, p){
                    if (p in cache)
                        render_px_results(q, p, cache[p]);
                    else {
                        var xhr = new XMLHttpRequest();
                        xhr.open('GET', 'https://pixabay.com/api/?key=27347-23fd1708b1c4f768195a5093b&response_group=high_resolution&lang='+lang+'&image_type='+image_type+'&orientation='+orientation+'&per_page='+per_page+'&page='+p+'&search_term='+encodeURIComponent(q));
                        xhr.onreadystatechange = function(){
                            if (this.status == 200 && this.readyState == 4) {
                                var data = JSON.parse(this.responseText);
                                if (!(data.totalHits > 0)) {
                                    jQuery('#pixabay_results').html('<div style="color:#d71500;font-size:16px">No hits</div>');
                                    return false;
                                }
                                cache[p] = data;
                                render_px_results(q, p, data);
                            }
                        };
                        xhr.send();
                    }
                    return false;
                }
    
                function render_px_results(q, p, data){
                    hits = data['hits']; // store for upload click
                    pages = Math.ceil(data.totalHits/per_page);
                    var s = '';
                    jQuery.each(data.hits, function(k, v) {
                        s += '<div class="thumb" data-idx="'+k+'"><img style="width:'+v.previewWidth+'px;height:'+v.previewHeight+'px;" src="'+v.previewURL+'"></div>';
                    });
                    s += '<div style="clear:both;height:30px"></div><div id="paginator" style="text-align:center">';
                    if (p==1)
                        s += '<span class="button disabled">Prev</span>';
                    else
                        s += '<a href="#" onclick="return call_api(\''+escapejs(q)+'\', '+(p-1)+');" class="button">Prev</a>';
                    for (i=1; i < pages+1; i++) {
                        s += '<a href="#" onclick="return call_api(\''+escapejs(q)+'\', '+i+');" class="button'+(p==i?' disabled':'')+'">'+i+'</a>';
                    }
                    if (p==pages)
                        s += '<span class="button disabled">Next</span>';
                    else
                        s += '<a href="#" onclick="return call_api(\''+escapejs(q)+'\', '+(p+1)+');" class="button">Next</a>';
                    s += '</div>';
                    jQuery('#pixabay_results').html(s);
                    resized();
    
                    var thumb, idx, offset, x, y, scroll_l, scroll_t, l, t, img, ratio, width640, heigh640, width1280, height1280;
                    jQuery('.thumb').hoverIntent({
                        timeout: 150,
                        interval: 120,
                        over: function(e){
                            thumb = jQuery(this);
                            idx = thumb.data('idx');
                            scroll_l = jQuery(window).scrollLeft();
                            scroll_t = jQuery(window).scrollTop();
                            img = thumb.find('img');
                            offset = img.offset();
                            x = offset.left - scroll_l;
                            y = offset.top - scroll_t;
                            ratio = hits[idx].imageWidth / hits[idx].imageHeight;
                            longest_side = (hits[idx].imageWidth > hits[idx].imageHeight) ? hits[idx].imageWidth : hits[idx].imageHeight;
                            if (ratio > 1) {
                                width640 = 640, height640 = parseInt(640/ratio);
                                if (longest_side >= 1280)
                                    width1280 = 1280, height1280 = parseInt(1280/ratio);
                                else
                                    width1280 = longest_side, height1280 = parseInt(longest_side/ratio);
                            } else {
                                height640 = 640, width640 = parseInt(640*ratio);
                                if (longest_side >= 1280)
                                    height1280 = 1280, width1280 = parseInt(1280*ratio);
                                else
                                    height1280 = longest_side, width1280 = parseInt(longest_side*ratio);
                            }
    
                            preview = jQuery('<div data-idx="'+idx+'" class="preview">\
                                <div title="<?= _e('Insert image') ?>" style="padding:4px 5px 6px;margin:0 0 5px;text-align:left;border-bottom:1px solid #ddd">\
    							<a href="#" class="upload 150px" style="margin-right:15px">'+img.width()+' x '+img.height()+'</a>\
    							<a href="#" class="upload 640px" style="margin-right:15px">'+width640+' x '+height640+'</a>\
    							<a href="#" class="upload 1280px">'+width1280+' x '+height1280+'</a>\
    							<a href="#" class="upload JUMBO">FullHD</a>\
                                </div>\
                                <a title="<?= _e('Insert image') ?>" href="#" class="upload 640px" style="display:block;margin:auto;position:relative;width:'+parseInt(width640/2)+'px;height:'+parseInt(height640/2)+'px;">\
                                    <img src="'+img.attr('src')+'" style="width:'+parseInt(width640/2)+'px !important;height:'+parseInt(height640/2)+'px !important;">\
                                    <img src="'+hits[idx].webformatURL+'" style="width:'+parseInt(width640/2)+'px !important;height:'+parseInt(height640/2)+'px !important;">\
                                </a>\
                                <div style="padding:6px 5px 4px;margin:5px 0 0;text-align:left;border-top:1px solid #ddd"><?= _e('CC0 Image by', 'pixabay_images'); ?> <a href="https://pixabay.com/users/'+hits[idx].user+'/" target="_blank">'+hits[idx].user+'</a> / <a href="https://pixabay.com/'+lang+'/photos/?image_type='+image_type+'&orientation='+orientation+'&q='+escapejs(q)+'" target="_blank">Pixabay</a></div>\
                            </div>');
                            thumb.append(preview);
    
                            if (x < jQuery(window).width()/2) l = x; else l = x - preview.outerWidth() + img.outerWidth();
                            if (y < jQuery(window).height()/2) {
                                t = y + img.outerHeight() - 5;
                                if (t+preview.outerHeight() > jQuery(window).height()) t = jQuery(window).height() - preview.outerHeight() - 5;
                            } else {
                                t = y - preview.outerHeight() + 5;
                                if (t < 0) t = 5;
                            }
                            preview.css({'left':l + scroll_l, 'top':t + scroll_t});
                        },
                        out: function(e){
                            jQuery('.preview').remove();
                        }
                    });
                }
    
                jQuery(document).on('click', '.upload', function() {
                    var idx = jQuery('.preview').data('idx'), image_url;
                    image_url = jQuery(this).hasClass('150px') ? hits[idx].previewURL : jQuery(this).hasClass('1280px') ? hits[idx].largeImageURL : jQuery(this).hasClass('JUMBO') ? hits[idx].fullHDURL : hits[idx].webformatURL;
                    jQuery('.preview').html('Uploading image ...');
                    jQuery.post('.', { pixabay_upload: "1", image_url: image_url, image_user: hits[idx].user, q: q, wpnonce: '<?= wp_create_nonce('pixabay_images_security_nonce'); ?>' }, function(data){
                        if (parseInt(data) == data)
                            window.location = 'media-upload.php?type=image&tab=library&post_id='+post_id+'&attachment_id='+data;
                        else
                            alert(data);
                    });
                    return false;
                });
            </script>
        <?php
    }
    function media_upload_pixabaytab_handler() { wp_iframe('media_pixabay_images_tab'); }
    add_action('media_upload_pixabaytab', 'media_upload_pixabaytab_handler');
    
    if (isset($_POST['pixabay_upload'])) {
        # "pluggable.php" is required for wp_verify_nonce() and other upload related helpers
        if (!function_exists('wp_verify_nonce'))
            require_once(ABSPATH.'wp-includes/pluggable.php');
    
    	$nonce = $_POST['wpnonce'];
    	if (!wp_verify_nonce($nonce, 'pixabay_images_security_nonce')) {
            die('Error: Invalid request.');
    		exit;
    	}
    
        $post_id = absint($_REQUEST['post_id']);
        $pixabay_images_settings = get_option('pixabay_images_options');
    
        // parse image_url
        $url = str_replace('https:', 'http:', $_POST['image_url']);
        $parsed_url = parse_url($url);
        if(strcmp($parsed_url['host'], 'pixabay.com')) {
            die('Error: Invalid host in URL (must be pixabay.com)');
        }
    
        // get image file
    	$response = wp_remote_get($url);
    	if (is_wp_error($response)) die('Error: '.$response->get_error_message());
    
    	$q_tags = explode(' ' , $_POST['q']);
    	array_splice($q_tags, 2);
    	foreach ($q_tags as $k=>$v) {
    		// remove ../../../..
    		$v = str_replace("..", "", $v);
    		$v = str_replace("/", "", $v);
    		$q_tags[$k] = trim($v);
    	}
        $path_info = pathinfo($url);
    	$file_name = sanitize_file_name(implode('_', $q_tags).'_'.time().'.'.$path_info['extension']);
    
    	$wp_upload_dir = wp_upload_dir();
    	$image_upload_path = $wp_upload_dir['path'];
    
    	if (!is_dir($image_upload_path)) {
    		if (!@mkdir($image_upload_path, 0777, true)) die('Error: Failed to create upload folder '.$image_upload_path);
    	}
    
    	$target_file_name = $image_upload_path . '/' . $file_name;
    	$result = @file_put_contents($target_file_name, $response['body']);
    	unset($response['body']);
    	if ($result === false) die('Error: Failed to write file '.$target_file_name);
    
    	// are we dealing with an image
        require_once(ABSPATH.'wp-admin/includes/image.php');
    	if (!wp_read_image_metadata($target_file_name)) {
    		unlink($target_file_name);
    		die('Error: File is not an image.');
    	}
    
    	$image_title = ucwords(implode(', ', $q_tags));
        $attachment_caption = '';
        if (!$pixabay_images_settings['attribution'] | $pixabay_images_settings['attribution']=='true')
            $attachment_caption = '<a href="https://pixabay.com/users/'.htmlentities($_POST['image_user']).'/">'.htmlentities($_POST['image_user']).'</a> / Pixabay';
    
        // insert attachment
    	$wp_filetype = wp_check_filetype(basename($target_file_name), null);
    	$attachment = array(
            'guid' => $wp_upload_dir['url'].'/'.basename($target_file_name),
            'post_mime_type' => $wp_filetype['type'],
            'post_title' => preg_replace('/\.[^.]+$/', '', $image_title),
            'post_status' => 'inherit'
    	);
    	$attach_id = wp_insert_attachment($attachment, $target_file_name, $post_id);
    	if ($attach_id == 0) die('Error: File attachment error');
    
    	$attach_data = wp_generate_attachment_metadata($attach_id, $target_file_name);
    	$result = wp_update_attachment_metadata($attach_id, $attach_data);
    	if ($result === false) die('Error: File attachment metadata error');
    
    	$image_data = array();
    	$image_data['ID'] = $attach_id;
    	$image_data['post_excerpt'] = $attachment_caption;
    	wp_update_post($image_data);
    
    	echo $attach_id;
        exit;
    }
    
    ?>
    Thread Starter mrmut

    (@mrmut)

    Thaks.

    Do you plan to add support for high res images in the future?

    Thread Starter mrmut

    (@mrmut)

    Oh, yes, the topic is solved.

    Thread Starter mrmut

    (@mrmut)

    I managed to find a solution that worked well in 3.9:

    http://oikos.org.uk/2011/09/tech-notes-using-resized-images-in-wordpress-galleries-and-lightboxes/

    I have also been able to find another solution, which I haven’t tried:

    It is kind of nonsensical not to have this implemented into WP, as WP already resizes images.

Viewing 9 replies - 31 through 39 (of 39 total)