Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Attachment Browser (v2.1 beta testing) Details »»
Attachment Browser (v2.1 beta testing)
Version: 1.00, by CarCdr CarCdr is offline
Developer Last Online: Mar 2007 Show Printable Version Email this Page

Version: 3.0.1 Rating:
Released: 07-02-2004 Last Update: Never Installs: 23
 
No support by the author.

List/Search Attachment Files

List, filter/search, sort, etc. for attachments files. Respects forum permissions. Supports limiting search to a single forum or a list of forums. Also, a separate attachment summary page is available.

Any problems raised in this thread have been fixed. For new features in version 2, see below under Version 2 for "New" entries.

Standard page navigation is supported to go to last page, prev, next, etc.

Sorts, ascending or descending, are supported for:
  • two levels of sorting, for example, by user name and then by file name.
  • Sort, either level, on these fields:
    • date/time
    • user name
    • forum
    • file name
    • file extension
    • file size
    • # of downloads
  • the default sort is date/time (most recent first)
Searching/filtering
  • All criteria is entered on a collapsable form at the top of the page.
  • Search/filter criteria supported are:
    • user name ('*' wildcards allowed)
    • file name ('*' wildcards allowed),
    • file extension ('*' wildcards allowed)
    • userid or list of userid's
    • forumid or list of forumid'
    • attached before N days ago,
    • attached after N days ago
  • Single click filtering by user name, forum name or document type.

Changes pending for version 2.1
  1. New Added usergroup access checking.
    Two configuration variables can be set to either (a) allow access to a set of usergroup or (b) disallow access for a set of usergroup id's.
  2. New Query performance improved.
    Performance for sites with many thousands of attachments is significantly improved. The single most time consuming aspect of such a script is the MySQL query for 'COUNT(*)' to get the number of attachments matching the selection criteria and access permissions. By including only those JOIN's that are required, depending on the columns being accessed, the ORDER BY, and the WHERE clauses, we improve performance of both retrievals. There is still one case where the row retrieval could be slow: when the user requests that the output be sorted by forum title.
  3. New List attachments added since last visit.
  4. New Added a debugging setting to display timing information.
  5. Change Various other performance improvements that will be detailed when released.

Version 2:
  1. New A separate attachment summary page was added.
    Page provides overall summary, summary by forum, and summary by extension.
    This introduces two new templates: attbro_SUMMARY and attbro_summary_categorybit.
    This page is accessed from a new link at the top of the main page.

  2. New Now uses $vbphrase for phrases.
    You can AdminCP-install custom phrases to override the defaults.

  3. New We respect forum permissions.
    To have an entry listed, the user needs 'CANVIEW' and 'CANGETATTACHMENT'
    access and a password if required. Also, $_FORUMOPTIONS[active] and
    $_FORUMOPTIONS[cancontainthreads] must be on and the forum must not
    be a link redirect.

  4. New List forum name with each entry.

  5. New Now supports sorting by forum name; just like any other
    sort, for first- or second-level sort.

  6. New Quick filtering for a single forum, by clicking the
    '[Filter]' link next to a forum name to search only that forum, similar to
    clicking the link next to the user name in our previous version.

  7. New Allow one or more forumid's to be specified as a filter on the Display Options
    form. The "Forum ID" form field may be one or more ID's separated by spaces or commas.
    The "[Filter]" link next to forum names uses this as well to add a Forum ID to the
    current selection criteria.

  8. New Allow one or more userid's to be specified as a filter on the Display Options
    form. The "User ID" form field may be one or more ID's separated by spaces or commas.

  9. New Forums can be explicitly exluded via the URL parameter
    "exclude_forums=LIST", where LIST is one or more forumid's separated
    by spaces or commas. This will eventually be an AdminCP option.

  10. Bug: Checks deletion log so that deleted posts are not included.

  11. Feature/Change: The filter 'sel_userid=NNN' no longer disallows other
    filter criteria. It's treated like any other filter -- combined with other selection
    criteria. Only one of 'sel_userid=NNN' or 'sel_username=XXX' can be specified.
    Userid takes precedence. This change also applies to 'sel_forumid=XXX'.

  12. Change: We use MySQL "LIMIT X,N" syntax to only retrieve the records
    we need to fill the requested page. This should provide some performance gain
    when building pages for high page numbers.

  13. Change: Renamed '[Downloads]' link next to user name to '[Filter]'.

  14. Change: Renamed 'Downloads' in listing header to '$vbphrase[views]'.

  15. Change: Renamed URL parameter 'userid=NNN' to 'sel_userid=NNN'.

  16. Change: Since we now need forum information for every page, we
    always query using all the JOINS -- user, post, thread, forum, deletionlog.

  17. Change: Exclude attachements whose 'postid' is zero. Thanks to
    Pitman for this one, who suggested: "About the private attachments: Since
    they don't have a postid, wouldn't "AND postid !=0" work in the query or
    whatever? If so, that should also fix the problem that some may have with
    attachment names and all showing but no attachment really there yet (like when
    somebody is posting a new attachment and have not yet clicked Submit New
    Thread or Submit Reply)?
    "
  18. Bug: Fix mismatched <td></td> in attbro_FORM template that caused
    page to leak past the right margin.
  19. Phrase changes:
    • New 'stars_allowed' for reminders on form.
    • New 'Filter' for '[Filter]' links
    • New 'Count' for summary page.
    • New 'Attachment_Summary'.
    • No longer use 'Select_Type'.
v 1.1:
  • Added .php to all attachment_browser references in template links.
  • Added forgotten class="tcat" to first table row for headings.
v 1.2:
  • Feature: Enabled display of file type icons and the ability to click
    said icons to recall us to list only files of that type (extension).
    We look for icons using "$stylevar[imgdir_attach]/$extension.gif".
  • Bug: Make "Show attachment ID" on form be remembered across calls.
  • Bug: Make sure "userid=XXX" is passed in links for page navigation when
    listing a single user's downloads.
  • Feature: If we are showing the attachment ID, then always force it below the
    row number with '<br />'.
  • Performance: Performance of 'COUNT(*)' query greatly imporved for case where
    we do not need to reference tables other than 'attachment'. Testing
    on our server shows speed improvement around 6x better. This small
    optimization controlled via "$sqlCountRequiredJoins".

----------------------------

To search in a single forum: use the single click [Filter] next to any forum name on a page or enter the forumid on the "Display Options" form.
To search only in a selected list of forums: Enter a comma-separated list of forumid's in "Display Options".

You can AdminCP-install custom templates to override our defaults ones.
You can AdminCP-install custom phrases to override the defaults -- all
references in templates are to "$vbphrase[XXX]".

If you do not want to change the default templates or phrases, then there are
no other files to install -- just put this one in the main '/forum' directory.
If you want to modify the default templates, copy them from this file and
install them as usual. We will notice when there are installed templates to
override our defaults. The same applies to phrases.

We only list forums that the user has permissions to view and get attachments,
for attachments that are visible and not from deleted posts.

We do 2 queries: (1) get the total COUNT of accessible attachments matching
the selection criteria and (2) retrieve enough rows to fill the requested page.

If you follow a link on one of our pages to download an attachment, view a
user profile, or view the original post, then the normal access checks will
apply, as these links simply invoke standard vBulletin files.

The templates referenced are: attbro_MAIN, attbro_FORM, attbro_ERROR,
attbro_attachbit, attbro_SUMMARY and attbro_summary_categorybit. The default
templates and phrases are defined in this file. Look for '$MyDefaultTemplates'
and '$MyDefaultPhrases'.

For example, if we had a template named 'attbro_example', it will appear in
this file as:

$MyDefaultTemplates['attbro_example'] = '
LINE 1 OF TEMPLATE
LINE 2 OF TEMPLATE

';


To install a custom version, just copy the LINES
and install it under the template name attbro_example.
----------------------------
This extension is free, and will remain free.

Cheers, CarCdr

Show Your Support

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

Comments
  #52  
Old 07-19-2004, 03:58 PM
highlander_RD's Avatar
highlander_RD highlander_RD is offline
 
Join Date: Oct 2003
Location: Italy
Posts: 38
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

mmmm...
I guess you didn't read my PM...
Reply With Quote
  #53  
Old 07-19-2004, 04:48 PM
CarCdr CarCdr is offline
 
Join Date: Apr 2004
Posts: 242
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by highlander_RD
mmmm...
I guess you didn't read my PM...
And here I thought it was you. I sent you the code via e-mail last week.

I'll send a followup PM to you.
Reply With Quote
  #54  
Old 07-20-2004, 08:31 PM
PixelFx PixelFx is offline
 
Join Date: Dec 2002
Posts: 1,117
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

is it possible for me to beta test 2.0 ?
Reply With Quote
  #55  
Old 07-27-2004, 06:43 PM
CarCdr CarCdr is offline
 
Join Date: Apr 2004
Posts: 242
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Version 2 uploaded with screenshots.

https://vborg.vbsupport.ru/showthread.php?p=528801

Among other new features, it includes forum support, including searching by forum and permission support.

CarCdr
Reply With Quote
  #56  
Old 08-02-2004, 11:34 PM
SIINSI SIINSI is offline
 
Join Date: Mar 2003
Posts: 119
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I uploaded the file but, it doesn't load I gave it a good 10 minutes. Any ideas?

I have about 16,000 attachments and use 804 Mb. for attachments. Is this the problem?

EDIT It finally loaded after a long, long while. Is that normal?

Miguel
Reply With Quote
  #57  
Old 08-03-2004, 12:34 AM
CarCdr CarCdr is offline
 
Join Date: Apr 2004
Posts: 242
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

16,000 attachments hey. Hmmm... the browser only makes two queries, one to get the count of attachments you have access to (i.e., MySQL "COUNT(*)) and the other to load a page worth of attachment information.

Also, it does not retrieve the actual content, so the rows retrieved are quite small.

We have about 400 attachments and it loads very quickly.

I'd like to add a debug parameter that you could use to get feedback on what is taking so long. That way, you could get back to me about where it is eating the time.
Reply With Quote
  #58  
Old 08-03-2004, 01:33 AM
SIINSI SIINSI is offline
 
Join Date: Mar 2003
Posts: 119
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sure, just let me know what I need to do. It looks like a very useful tool. I f I could speed it up, I'd be a happy man

It said I had 772 Pages of attachments. If that matters.

Thanks,
Miguel
Reply With Quote
  #59  
Old 08-03-2004, 10:43 AM
CarCdr CarCdr is offline
 
Join Date: Apr 2004
Posts: 242
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by SIINSI
Sure, just let me know what I need to do. It looks like a very useful tool. I f I could speed it up, I'd be a happy man

It said I had 772 Pages of attachments. If that matters.

Thanks,
Miguel
The 772 pages is just the count you get for 1400 attachents at the default of 20 per page. Like I said, it only retrieves the actual attachment table rows for the target page. I assume you were getting just the first page, so it would be retrieving the first 20 rows. We'll time the two queries to see which one is so slow. I expect it is the "count(*)" query.

If this is the case, one alternative is to not to the page navigation stuff, thereby obviating the need to do the "count(*)" query. One would only retrieve the target page plus one extra to see if there is a next page.

Other ideas folks?
Reply With Quote
  #60  
Old 08-03-2004, 03:12 PM
CarCdr CarCdr is offline
 
Join Date: Apr 2004
Posts: 242
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have made some optimizations to attachment_browser to improve the speed of the queries.
  1. Only include a table JOIN if it is really required.
    We look at a query before running it to determine which tables to join. Before, we would always include all tables in addition to attachment: user, post, thread, forum.
  2. Do not use a forum table JOIN.
    Got rid of references to 'forum.forumid' and 'forum.title'. Retrieve the forumid from the thread table join, which we likely need anyway for checking thread.forumid. Retrieve the forum titles for the page after the fact using the forum cache. The only time we need the forum table JOIN is when user request a sort by forum title.
  3. Include forum access check only if required.
    The check for "thread.forumid IN (Accessible-Forumids)" is included only if required -- only if user does not have access to all forums.
  4. Be default, there is no sub-sort (i.e., 2nd-level sort)
As a result, the two queries do run faster for default display.

Query #1: The 'COUNT(*)' query runs anywhere from 20% faster to 5 times faster (MySQL caching must explain this huge range.) This was by far the slower of the two queries.

Query #2: The row retrieval query to get the rows for the target page runs about 9% faster, but that is not so important as it was the fast query anyway.

PM me an e-mail and I'll send you the new version. Once we agree that things still work properly and you verify the performance increase, I will post the new version here.

Cheers
Reply With Quote
  #61  
Old 08-03-2004, 08:25 PM
Theater's Avatar
Theater Theater is offline
 
Join Date: Aug 2004
Posts: 121
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello,

Long time lurker, but decided to register since this modification interests me. My community has over 15,000 attachments with over 5.5Gb of data. I converted to file storage format to save on my server load. So I was wondering if this modification would work since I've done that? Also, is there a way to limit access to the mod itself? Like say, only grant access to a paid subscription member, moderator, or administrator specific?
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 02:14 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.04673 seconds
  • Memory Usage 2,322KB
  • Queries Executed 25 (?)
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_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete