Simple Machines Community Forum

Customizing SMF => Tips and Tricks => Topic started by: dschwab9 on September 26, 2004, 10:51:06 PM

Title: No attachment limit for admins
Post by: dschwab9 on September 26, 2004, 10:51:06 PM
I would like to be able to have the file size/extension limits not apply to admins.  Is this easy to do?  There's times I need to upload a couple of meg zip or something, but I don't want to give the world access to do that.  I've been changing the limit, uploading the file, then changing it back.
Title: Re: No attachment limit for admins
Post by: [Unknown] on September 26, 2004, 10:58:13 PM
Post.php, find:
Code: [Select]
if (!empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)
Replace:
Code: [Select]
if (!$user_info['is_admin'] && !empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)
-[Unknown]
Title: Re: No attachment limit for admins
Post by: dschwab9 on September 26, 2004, 11:10:58 PM
Perfect!  Thanks
Title: Re: No attachment limit for admins
Post by: Ben_S on September 27, 2004, 09:47:27 AM
This should be in tips and tricks ;).
Title: Re: No attachment limit for admins
Post by: dschwab9 on September 27, 2004, 05:48:27 PM
This should be in tips and tricks ;).

Well, can you move it there?
Title: Re: No attachment limit for admins
Post by: Ben_S on September 27, 2004, 05:56:13 PM
Would if I could, my post was a suggestion for someone with move powers, I dont have them :(.

[edit]
Someone did  ;D
[/edit]
Title: Re: No attachment limit for admins
Post by: CarLBanks on October 16, 2004, 04:21:34 PM
I still can't upload anything over 192.
Title: Re: No attachment limit for admins
Post by: Ben_S on October 17, 2004, 09:56:44 AM
Same here, comes back with

 Your file is too large. The maximum attachment size allowed is 192 KB.

My max attachment setting is 100KB so dunno where it gets 192 KB from.
Title: Re: No attachment limit for admins
Post by: [Unknown] on October 17, 2004, 04:02:35 PM
Maybe it's your per-post limit?

-[Unknown]
Title: Re: No attachment limit for admins
Post by: Ben_S on October 17, 2004, 07:25:09 PM
Not sure what you mean by per post limit?
Title: Re: No attachment limit for admins
Post by: [Unknown] on October 17, 2004, 07:45:41 PM
Please consult your attachment settings.

-[Unknown]
Title: Re: No attachment limit for admins
Post by: Ben_S on October 17, 2004, 07:52:26 PM
Doh, never seen that one before. thats two new things I've learnt today.

Have now set it suitably high, thanks for that.
Title: Re: No attachment limit for admins
Post by: forumite on May 28, 2005, 01:12:07 PM
Post.php, find:

I've just found this topic, so apologies for the late question.

I can find Post.template.php but can't find Post.php  Which sub-directory would it be in?

TIA
Title: Re: No attachment limit for admins
Post by: [Unknown] on May 28, 2005, 01:27:12 PM
How do I modify files? (http://www.simplemachines.org/community/index.php?topic=24110.0)

-[Unknown]
Title: Re: No attachment limit for admins
Post by: seammer on July 04, 2005, 06:00:36 PM
I'm watching this topic, as I couldn't find "Post.php" ANYWHERE...

I'm very new to SMF forums... ???
Title: Re: No attachment limit for admins
Post by: forumite on July 05, 2005, 12:53:38 AM
I couldn't find "Post.php" ANYWHERE...

It's in your Sources directory.
Title: Re: No attachment limit for admins
Post by: xenovanis on July 05, 2005, 02:03:48 AM
I'm watching this topic, as I couldn't find "Post.php" ANYWHERE...

I'm very new to SMF forums... ???

Post.php is in the folder /Sources
Title: Re: No attachment limit for admins
Post by: rojamaia on August 27, 2005, 08:23:55 AM


i thought that if we should edit it, it should not just be for the over-all attachment limit, but edit more of the code below that, to allow more permissions to the admin.

would this be alright?

Code: [Select]
// Is the file too big?
if (!empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)
fatal_lang_error('smf122', false, array($modSettings['attachmentSizeLimit']));

// Have we reached the maximum number of files we are allowed?
$quantity++;
if (!$user_info['is_admin'] && !empty($modSettings['attachmentNumPerPostLimit']) && $quantity > $modSettings['attachmentNumPerPostLimit'])
fatal_lang_error('attachments_limit_per_post', false, array($modSettings['attachmentNumPerPostLimit']));

// Check the total upload size for this post...
$total_size += $_FILES['attachment']['size'][$n];
if (!$user_info['is_admin'] && !empty($modSettings['attachmentPostLimit']) && $total_size > $modSettings['attachmentPostLimit'] * 1024)
fatal_lang_error('smf122', false, array($modSettings['attachmentPostLimit']));

if (!$user_info['is_admin'] && !empty($modSettings['attachmentCheckExtensions']))
{
if (!in_array(strtolower(substr(strrchr($_FILES['attachment']['name'][$n], '.'), 1)), explode(',', strtolower($modSettings['attachmentExtensions']))))
fatal_error($_FILES['attachment']['name'][$n] . '.<br />' . $txt['smf123'] . ' ' . $modSettings['attachmentExtensions'] . '.', false);
}

if (!$user_info['is_admin'] && !empty($modSettings['attachmentDirSizeLimit']))
{
// Make sure the directory isn't full.
$dirSize = 0;
$dir = @opendir($modSettings['attachmentUploadDir']) or fatal_lang_error('smf115b');
while ($file = readdir($dir))
{
if (substr($file, 0, -1) == '.')
continue;

$dirSize += filesize($modSettings['attachmentUploadDir'] . '/' . $file);
}
closedir($dir);

// Too big!  Maybe you could zip it or something...
if ($_FILES['attachment']['size'][$n] + $dirSize > $modSettings['attachmentDirSizeLimit'] * 1024)
fatal_lang_error('smf126');
}

// Find the filename, strip the dir.
$destName = basename($_FILES['attachment']['name'][$n]);

// Check if the file already exists.... (for those who do not encrypt their filenames...)
if (!$user_info['is_admin'] && !empty($modSettings['attachmentEncryptFilenames']))
{
Title: Re: No attachment limit for admins
Post by: reznorsoft on October 21, 2005, 12:17:10 PM


i thought that if we should edit it, it should not just be for the over-all attachment limit, but edit more of the code below that, to allow more permissions to the admin.

would this be alright?

Code: [Select]
// Is the file too big?
if (!empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)
fatal_lang_error('smf122', false, array($modSettings['attachmentSizeLimit']));

// Have we reached the maximum number of files we are allowed?
$quantity++;
if (!$user_info['is_admin'] && !empty($modSettings['attachmentNumPerPostLimit']) && $quantity > $modSettings['attachmentNumPerPostLimit'])
fatal_lang_error('attachments_limit_per_post', false, array($modSettings['attachmentNumPerPostLimit']));

// Check the total upload size for this post...
$total_size += $_FILES['attachment']['size'][$n];
if (!$user_info['is_admin'] && !empty($modSettings['attachmentPostLimit']) && $total_size > $modSettings['attachmentPostLimit'] * 1024)
fatal_lang_error('smf122', false, array($modSettings['attachmentPostLimit']));

if (!$user_info['is_admin'] && !empty($modSettings['attachmentCheckExtensions']))
{
if (!in_array(strtolower(substr(strrchr($_FILES['attachment']['name'][$n], '.'), 1)), explode(',', strtolower($modSettings['attachmentExtensions']))))
fatal_error($_FILES['attachment']['name'][$n] . '.<br />' . $txt['smf123'] . ' ' . $modSettings['attachmentExtensions'] . '.', false);
}

if (!$user_info['is_admin'] && !empty($modSettings['attachmentDirSizeLimit']))
{
// Make sure the directory isn't full.
$dirSize = 0;
$dir = @opendir($modSettings['attachmentUploadDir']) or fatal_lang_error('smf115b');
while ($file = readdir($dir))
{
if (substr($file, 0, -1) == '.')
continue;

$dirSize += filesize($modSettings['attachmentUploadDir'] . '/' . $file);
}
closedir($dir);

// Too big!  Maybe you could zip it or something...
if ($_FILES['attachment']['size'][$n] + $dirSize > $modSettings['attachmentDirSizeLimit'] * 1024)
fatal_lang_error('smf126');
}

// Find the filename, strip the dir.
$destName = basename($_FILES['attachment']['name'][$n]);

// Check if the file already exists.... (for those who do not encrypt their filenames...)
if (!$user_info['is_admin'] && !empty($modSettings['attachmentEncryptFilenames']))
{
I was thinking of doing the exact same thing .. I don't see why it wouldn't work .. guess I'm about to find out  ;)

though it seems you didn't add the string
Code: [Select]
!$user_info['is_admin'] && to the first part of the code
Code: [Select]
// Is the file too big?
if (!empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)
fatal_lang_error('smf122', false, array($modSettings['attachmentSizeLimit']));
Title: Re: No attachment limit for admins
Post by: Peter Duggan on February 17, 2007, 04:59:54 AM
Post.php, find:
Code: [Select]
if (!empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)
Replace:
Code: [Select]
if (!$user_info['is_admin'] && !empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)

So what's changed here over the past 2+ years that might stop this working?

NB I'm aware of the following:

Maybe it's your per-post limit?

But still can't attach a 600K image with per post limit of 2000K and max attachment size of 200K 'disabled' as suggested above for admins (so that line at least remains unchanged since 2004!) and suspect there may now be some additional limiting factor?
Title: Re: No attachment limit for admins
Post by: bodyboard_jerez on May 28, 2007, 11:04:29 AM
Hi, I have the 1.1.2 version and this Tips and Tricks doesn't runs for me...

Please, could you help me? Thanks a lot "!"
Title: Re: No attachment limit for admins
Post by: bodyboard_jerez on June 08, 2007, 08:09:59 AM
Hi, I have the 1.1.2 version and this Tips and Tricks doesn't runs for me...

Please, could you help me? Thanks a lot "!"

Somebody does this trick runs on 1.1.2 version? How please?
Title: Re: No attachment limit for admins
Post by: Kolya on January 21, 2012, 10:44:37 AM
For SMF 2.02 to exempt the admin from upload size limits and file extension checks: Basically just add !$user_info['is_admin'] && to all these checks...

In Sources/Post.php:
FIND:
Code: [Select]
if (!empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)
fatal_lang_error('file_too_big', false, array($modSettings['attachmentSizeLimit']));

$quantity++;
if (!empty($modSettings['attachmentNumPerPostLimit']) && $quantity > $modSettings['attachmentNumPerPostLimit'])
fatal_lang_error('attachments_limit_per_post', false, array($modSettings['attachmentNumPerPostLimit']));

$total_size += $_FILES['attachment']['size'][$n];
if (!empty($modSettings['attachmentPostLimit']) && $total_size > $modSettings['attachmentPostLimit'] * 1024)
fatal_lang_error('file_too_big', false, array($modSettings['attachmentPostLimit']));

if (!empty($modSettings['attachmentCheckExtensions']))
{
if (!in_array(strtolower(substr(strrchr($_FILES['attachment']['name'][$n], '.'), 1)), explode(',', strtolower($modSettings['attachmentExtensions']))))
fatal_error($_FILES['attachment']['name'][$n] . '.<br />' . $txt['cant_upload_type'] . ' ' . $modSettings['attachmentExtensions'] . '.', false);
}


REPLACE with:
Code: [Select]
if (!$user_info['is_admin'] && !empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)
fatal_lang_error('file_too_big', false, array($modSettings['attachmentSizeLimit']));

$quantity++;
if (!$user_info['is_admin'] && !empty($modSettings['attachmentNumPerPostLimit']) && $quantity > $modSettings['attachmentNumPerPostLimit'])
fatal_lang_error('attachments_limit_per_post', false, array($modSettings['attachmentNumPerPostLimit']));

$total_size += $_FILES['attachment']['size'][$n];
if (!$user_info['is_admin'] && !empty($modSettings['attachmentPostLimit']) && $total_size > $modSettings['attachmentPostLimit'] * 1024)
fatal_lang_error('file_too_big', false, array($modSettings['attachmentPostLimit']));

if (!$user_info['is_admin'] && !empty($modSettings['attachmentCheckExtensions']))
{
if (!in_array(strtolower(substr(strrchr($_FILES['attachment']['name'][$n], '.'), 1)), explode(',', strtolower($modSettings['attachmentExtensions']))))
fatal_error($_FILES['attachment']['name'][$n] . '.<br />' . $txt['cant_upload_type'] . ' ' . $modSettings['attachmentExtensions'] . '.', false);
}

FIND:
Code: [Select]
// Check the total upload size for this post...
$total_size += $_FILES['attachment']['size'][$n];
if (!empty($modSettings['attachmentPostLimit']) && $total_size > $modSettings['attachmentPostLimit'] * 1024)
{
checkSubmitOnce('free');
fatal_lang_error('file_too_big', false, array($modSettings['attachmentPostLimit']));
}

REPLACE with:
Code: [Select]
// Check the total upload size for this post...
$total_size += $_FILES['attachment']['size'][$n];
if (!$user_info['is_admin'] && !empty($modSettings['attachmentPostLimit']) && $total_size > $modSettings['attachmentPostLimit'] * 1024)
{
checkSubmitOnce('free');
fatal_lang_error('file_too_big', false, array($modSettings['attachmentPostLimit']));
}
Title: Re: No attachment limit for admins
Post by: michaeloeser on March 02, 2012, 04:19:05 AM
Doesn´t seem to work for me. I´m the main and only administrator of my forum and although I made the changes to Post.php I´m not able to upload more and bigger files as defined in the attachment settings. Using SMF 2.0.2.

Any ideas?
Title: Re: No attachment limit for admins
Post by: Chalky on March 17, 2012, 10:48:23 AM
Doesn´t seem to work for me. I´m the main and only administrator of my forum and although I made the changes to Post.php I´m not able to upload more and bigger files as defined in the attachment settings. Using SMF 2.0.2.

Any ideas?

For me neither.  I'm using 2.0.2, just made exactly the edits shown above, but nothing happened...
Title: Re: No attachment limit for admins
Post by: searchgr on May 09, 2012, 11:36:39 AM
Any update here?
Title: Re: No attachment limit for admins
Post by: mybiafraland on June 20, 2012, 08:49:42 AM
waiting for update as well
Title: Re: No attachment limit for admins
Post by: Kays on June 20, 2012, 10:36:40 AM
Hi, look in Subs-Post.php for the same set of checks and make the recommended change to those also.
Except, instead of !$user_info['is_admin'] use !$context['user']['is_admin']
Title: Re: No attachment limit for admins
Post by: Elmacik on June 21, 2012, 04:50:59 AM
A smoother way I told here:
http://www.simplemachines.org/community/index.php?topic=479722.0
Title: Re: No attachment limit for admins
Post by: dougiefresh on December 06, 2014, 12:06:02 PM
Doesn´t seem to work for me. I´m the main and only administrator of my forum and although I made the changes to Post.php I´m not able to upload more and bigger files as defined in the attachment settings. Using SMF 2.0.2.

Any ideas?

For me neither.  I'm using 2.0.2, just made exactly the edits shown above, but nothing happened...
The reason it doesn't work is it's incomplete.  Modifications must be made to the Themes/default/Post.template.php as well.... 


In Sources/Post.php, find and replace:
Code: (find) [Select]
$context['num_allowed_attachments'] = empty($modSettings['attachmentNumPerPostLimit'])
Code: (Replace) [Select]
$context['num_allowed_attachments'] = ($user_info['is_admin'] || empty($modSettings['attachmentNumPerPostLimit']))
In Sources/Subs-Post.php, find and replace:
Code: (Find) [Select]
function createAttachment(&$attachmentOptions)
{
global
Code: (Replace) [Select]
function createAttachment(&$attachmentOptions)
{
global $user_info,

Code: (Find) [Select]
if (!empty($modSettings['attachmentSizeLimit']) && $attachmentOptions['size'] > $modSettings['attachmentSizeLimit'] * 1024)
Code: (Replace) [Select]
if (!$user_info['is_admin'] && !empty($modSettings['attachmentSizeLimit']) && $attachmentOptions['size'] > $modSettings['attachmentSizeLimit'] * 1024)
In Themes/default/Post.template.php, find and replace these:
Code: (Find) [Select]
function template_main()
{
global
Code: (Replace) [Select]
function template_main()
{
global $user_info,

Code: (Find) [Select]
if ($context['num_allowed_attachments'] > 1)]]></search>
Code: (Replace) [Select]
if ($user_info['is_admin'] || $context['num_allowed_attachments'] > 1)
Code: (Find) [Select]
var allowed_attachments = ', $context['num_allowed_attachments'], ';
Code: (Replace) [Select]
var allowed_attachments = ', (empty($user_info['is_admin']) ? $context['num_allowed_attachments'] : 100), ';
Code: (Find) [Select]
if (!empty($modSettings['attachmentCheckExtensions']))
Code: (Replace) [Select]
if (!$user_info['is_admin'] && !empty($modSettings['attachmentCheckExtensions']))
Code: (Find) [Select]
if (!empty($context['attachment_restrictions']))
Code: (Replace) [Select]
if (!$user_info['is_admin'] && !empty($context['attachment_restrictions']))


I've posted up a mod based on this thread with all my modifications (9 operations total) here: No Attachment Limit for Admins (http://custom.simplemachines.org/mods/index.php?mod=3997).  It hasn't been approved yet....
Title: Re: No attachment limit for admins
Post by: dougiefresh on December 11, 2014, 07:55:54 PM
It occurs to me that the admin check could be converted into a permission-based group thingy.....
Title: Re: No attachment limit for admins
Post by: dougiefresh on December 21, 2014, 07:39:34 AM
No attachment limits for membergroups (http://custom.simplemachines.org/mods/index.php?mod=3997) mod has been released, if anyone is interested......
Title: Re: No attachment limit for admins
Post by: alastairbrian on March 19, 2015, 01:58:29 AM
Hi, I have the 1.1.2 version and this Tips and Tricks doesn't runs for me...

Please, could you help me? Thanks a lot "!"

It also not working for my version 1.1.2
Title: Re: No attachment limit for admins
Post by: Kindred on March 19, 2015, 07:28:27 AM
if you are running 1.1.2, you are 18 revisions behind and need to upgrade ASAP.