Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Import External Images Details »»
Import External Images
Version: 1.0.5, by y2ksw y2ksw is offline
Developer Last Online: Feb 2023 Show Printable Version Email this Page

Category: Administrative and Maintenance Tools - Version: 4.x.x Rating:
Released: 11-06-2010 Last Update: 02-13-2011 Installs: 300
DB Changes Uses Plugins
Additional Files Translations  
No support by the author.

This vBulletin 4 product imports external images in your posts from external servers or paths into a specific path, normally your forum's image folder.

Differently than the previous product Image Cache for vBulletin 3.x., it parses the posts at regular intervals for new images and replaces the external references in the background. Also, instead of using only a single folder, it creates folders for years and months, making it much easier to handle large quantities of images. The source and destination image URL's are stored into database, too, avoiding unnecessary duplicates.

It moves and optionally converts images from one place to another. It is a handy tool in order to keep your images local to your forums.

Version 1.0.4 is temporarily in BETA stage until the users have confirmed the newly requested features.
Version 1.0.5 is still in BETA stage. It adds a new bunch of additional features, one of which allows you to test your mathematical understanding ... and a few other to fine-tune CURL and socket timeouts, and resizing on the fly of too large images. If you don't know what these options do, please leave them at their default values.

Download Now

File Type: zip 1.0.2.iei4.zip (80.0 KB, 477 views)
File Type: zip 1.0.4.iei4.zip (84.5 KB, 185 views)
File Type: zip 1.0.5.iei4.zip (87.5 KB, 2158 views)

Screenshots

File Type: jpg 08-11-2010-11.32.53.jpg (112.4 KB, 0 views)
File Type: jpg 02-02-2011-22.06.39.jpg (126.0 KB, 0 views)

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #222  
Old 06-03-2011, 02:51 AM
TundraSoul TundraSoul is offline
 
Join Date: Mar 2002
Posts: 155
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I noticed a very small number of images are saved with some unexpected filenames. For instance: 1.gif?t=1264708348 and so on. What should I do about those, I'm fairly sure they do not work; am I correct?
Reply With Quote
  #223  
Old 06-03-2011, 10:11 AM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by TundraSoul View Post
I noticed a very small number of images are saved with some unexpected filenames. For instance: 1.gif?t=1264708348 and so on. What should I do about those, I'm fairly sure they do not work; am I correct?
It seems some places will put the question-mark and an id number or such after some images. They probably due this to better track where images are being viewed.

In almost all cases you can erase the ? and everything after it and it will still work as normal.

My "fix" for it therefore was to simply enforce the extension was only 3 characters long.

If you edit the cron file, you'll see I added a line to the function near line 124 of the file.

This is what I'm using and it's working in all the tests I've tried- again the OP please feel free to include this code in the next release if you feel it is useful.

PHP Code:
function iei_get_file_index_name($path$extension$oldfilename)
{
    
// Get only the file name (no directory info)
    
$oldfilename basename($oldfilename$extension);

    
// Strip out non alpha-numeric characters
    
$oldfilename preg_replace('#[^A-Za-z0-9_]#'''$oldfilename);

    
// Set max file name length to 40 characters
    
$oldfilename substr($oldfilename040);
    
    
// Force extension to 3 characters only
    
$extension substr($extension03);

    
//Increment number if file exists
    
for($i 1;; $i++)
    {
        
$filename "$path/$oldfilename-$i.$extension";
        if(!
file_exists($filename))
        {
            return 
$filename;
        }
    }

Reply With Quote
  #224  
Old 06-03-2011, 11:01 AM
BadgerDog BadgerDog is offline
 
Join Date: Oct 2006
Location: Toronto
Posts: 1,789
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks BirdOPrey5 ....

My download of the latest version 1.0.5.iei4.zip showing the cron.php as Feb 14, 2011, already shows your changes above as being incorporated in that file?

Am I missing something?

Regards,
Doug
Reply With Quote
  #225  
Old 06-03-2011, 11:23 AM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by BadgerDog View Post
Thanks BirdOPrey5 ....

My download of the latest version 1.0.5.iei4.zip showing the cron.php as Feb 14, 2011, already shows your changes above as being incorporated in that file?

Am I missing something?

Regards,
Doug
It appears it wasn't the "first function" in that file but it's still there...

The relevant function included in that file is:
Code:
function iei_get_file_index_name($path, $extension, $oldfilename)
{
    // Get only the file name (no directory info)
    $oldfilename = basename($oldfilename, $extension);

    // Strip out non alpha-numeric characters
    $oldfilename = preg_replace('#[^A-Za-z0-9_]#', '', $oldfilename);

    // Set max file name length to 40 characters
    $oldfilename = substr($oldfilename, 0, 40);

    //Increment number if file exists
    for($i = 1;; $i++)
    {
        $filename = "$path/$oldfilename-$i.$extension";
        if(!file_exists($filename))
        {
            return $filename;
        }
    }
}
My change to this function is as follows (in red):

Code:
function iei_get_file_index_name($path, $extension, $oldfilename)
{
    // Get only the file name (no directory info)
    $oldfilename = basename($oldfilename, $extension);

    // Strip out non alpha-numeric characters
    $oldfilename = preg_replace('#[^A-Za-z0-9_]#', '', $oldfilename);

    // Set max file name length to 40 characters
    $oldfilename = substr($oldfilename, 0, 40);

    // Force extension to 3 characters only 
    $extension = substr($extension, 0, 3); 

    //Increment number if file exists
    for($i = 1;; $i++)
    {
        $filename = "$path/$oldfilename-$i.$extension";
        if(!file_exists($filename))
        {
            return $filename;
        }
    }
}
Just add those lines in red to your existing file.
Reply With Quote
  #226  
Old 06-03-2011, 02:08 PM
BadgerDog BadgerDog is offline
 
Join Date: Oct 2006
Location: Toronto
Posts: 1,789
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by BirdOPrey5 View Post
It appears it wasn't the "first function" in that file but it's still there...

Just add those lines in red to your existing file.
Thanks .. :up:

Made that change ....

Regards,
Doug
Reply With Quote
  #227  
Old 06-04-2011, 10:00 AM
y2ksw's Avatar
y2ksw y2ksw is offline
 
Join Date: Aug 2003
Location: Italy
Posts: 1,418
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Baitona View Post
thanks

I am really lost of and lot of members are complaining losing their images,
the whole monthly folders are delted too not only files ....

okay what is the best way to move the imparted folder outside of the vbulletin directory?

right now it is in the basic format
images/imported -------as a result---------> domain.com/vb/images/imported

can i do it
../imported ------as a result--------> domain.com/imported
There is no way to move the imported folder out of the vbulletin directory. The only workaround would be a symbolic link (Linux).

If entire folders disappear, you have a system problem and if I was you I would concentrate on that, because it does potentially destroy your forums, too. The only other option which comes to my mind is an old cPanel version which has had a sort of inbuilt "protection", which would purge all folders which weren't built from within FTP or the cPanel. If that is the case, this option has to be disabled at least.
Reply With Quote
  #228  
Old 06-04-2011, 10:01 AM
y2ksw's Avatar
y2ksw y2ksw is offline
 
Join Date: Aug 2003
Location: Italy
Posts: 1,418
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by TundraSoul View Post
I noticed a very small number of images are saved with some unexpected filenames. For instance: 1.gif?t=1264708348 and so on. What should I do about those, I'm fairly sure they do not work; am I correct?
Yes. I suggest to convert all imported images to JPG, which also would remove eventual tampered images. A sort of inbuilt Antivirus ...
Reply With Quote
  #229  
Old 06-08-2011, 02:21 AM
hscorp hscorp is offline
 
Join Date: Dec 2007
Posts: 56
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

any for 3.8.x?
Reply With Quote
  #230  
Old 06-08-2011, 12:41 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This works fine on 3.8 as is.
Reply With Quote
  #231  
Old 07-12-2011, 02:09 AM
Scalemotorcars's Avatar
Scalemotorcars Scalemotorcars is offline
 
Join Date: Mar 2006
Location: NC
Posts: 619
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok I think Im screwed here. Every single post on my site that linked to an image on my photopost is now gone. All I have now is the replacement image.

Site structure is

mysite/forum
mysite/gallery

What do I do now?
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:04 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05387 seconds
  • Memory Usage 2,385KB
  • Queries Executed 27 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (1)bbcode_php
  • (5)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (3)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (20)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (5)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete