Site in read-only mode

This site is now read-only following the release of MyBB 1.8 and the new mods site.

If you are looking for MyBB 1.8 mods please click here to visit the new mods site.

You can continue to download submissions for MyBB 1.6 and earlier here, however new submissions will only be accepted via the new mods site.

Write Review

Reviews

Image resizer by Cipher

perfect! greats...

Written By: FBI, 22nd June 2008

heya, just a bit of code you need to replace everything in imageresizer.php with.

code:

PHP Code:
<?php
// Make sure the following variable is given//
////////////////////////////////////////////////

$prefix "mybb_";
/////////////////////////////////////////////////
/**
 * Plugin name: Image resizer
 * Author:        Cipher
 * Version:        1.0
 */

$plugins->add_hook("parse_message""imageresizer_message");
$plugins->add_hook("pre_output_page""imageresizer_page");

function 
imageresizer_info()
{
    return array(
        
"name"        => "Image resizer",
        
"description"    => "Resizes an images if the width is larger than a maximum width given through the settings panel.",
        
"website"        => "mailto:[email protected]",
        
"author"        => "Cipher",
        
"authorsite"    => "mailto:[email protected]",
        
"version"        => "1.1",
    );
}

function 
imageresizer_activate()
{
    global 
$mybb$db;
    
    
// Add settings
    
$settings_group = array(
        
"gid"            => "NULL",
        
"name"        => "imageresizer",
        
"title"         => "Image resizer",
        
"description"    => "Settings for Cipher\'s \'Image resizer\' plugin.",
        
"disporder"        => "20",
        
"isdefault"        => "no",
    );
    
$db->insert_query("settinggroups"$settings_group);
    
$gid $db->insert_id();
    
    
$setting = array(
        
"sid"            => "NULL",
        
"name"        => "image_resizer_active",
        
"title"        => "Active",
        
"description"    => "This gives you the possability to deactivate the plugin without loosing the settings.",
        
"optionscode"    => "yesno",
        
"value"        => "no",
        
"disporder"        => "1",
        
"gid"            => intval($gid)
    );
    
$db->insert_query("settings"$setting);
    
    
$setting = array(
        
"sid"            => "NULL",
        
"name"        => "image_resizer_maxwidth",
        
"title"        => "Maximum width",
        
"description"    => "What is the maximum width of images in posts/pb\'s.",
        
"optionscode"    => "text",
        
"value"        => "500",
        
"disporder"        => "2",
        
"gid"            => intval($gid),
    );
    
$db->insert_query("settings"$setting);
    
    
$setting = array(
        
"sid"            => "NULL",
        
"name"        => "image_resizer_resizewidth",
        
"title"        => "Resize width",
        
"description"    => "To what width should images that exceed the maximum width be resized.",
        
"optionscode"    => "text",
        
"value"        => "500",
        
"disporder"        => "3",
        
"gid"            => intval($gid),
    );
    
$db->insert_query("settings"$setting);
    
    
$setting = array(
        
"sid"            => "NULL",
        
"name"            => "image_resizer_borderstyle",
        
"title"            => "Border style",
        
"description"    => "What should the border of the image be when resized.",
        
"optionscode"    => "text",
        
"value"            => "2px dashed red",
        
"disporder"        => "4",
        
"gid"            => intval($gid),
    );
    
$db->insert_query("settings"$setting);
    
    
$setting = array(
        
"sid"            => "NULL",
        
"name"            => "image_resizer_showwarning",
        
"title"            => "Show warning",
        
"description"    => "Should the users be warned to resize the image by a message under the image.",
        
"optionscode"    => "yesno",
        
"value"            => "yes",
        
"disporder"        => "5",
        
"gid"            => intval($gid),
    );
    
$db->insert_query("settings"$setting);
    
    
$setting = array(
        
"sid"            => "NULL",
        
"name"            => "image_resizer_warning",
        
"title"            => "Warning",
        
"description"    => "What should be the text of the warning.",
        
"optionscode"    => "text",
        
"value"            => "This image is too large.",
        
"disporder"        => "6",
        
"gid"            => intval($gid),    
    );
    
$db->insert_query("settings"$setting);
    
    
$setting = array(
        
"sid"            => "NULL",
        
"name"            => "image_resizer_warningcolor",
        
"title"            => "Warning text color",
        
"description"    => "What should be the text color of the warning.",
        
"optionscode"    => "text",
        
"value"            => "white",
        
"disporder"        => "7",
        
"gid"            => intval($gid),
    );
    
$db->insert_query("settings"$setting);
    
    
$setting = array(
        
"sid"            => "NULL",
        
"name"            => "image_resizer_warningbackground",
        
"title"            => "Warning background",
        
"description"    => "What should be backgroundcolor of the warning.",
        
"optionscode"    => "text",
        
"value"            => "red",
        
"disporder"        => "8",
        
"gid"            => intval($gid),
    );
    
$db->insert_query("settings"$setting);
}

function 
imageresizer_deactivate()
{
    global 
$db;
    
    
//DELETE ALL SETTINGS
    
$db->query("DELETE FROM ".$prefix."settings WHERE name IN('image_resizer_active','image_resizer_maxwidth','image_resizer_resizewid​th','image_resizer_borderstyle','image_resizer_showwarning','image_resizer_warni​ng','image_resizer_warningcolor','image_resizer_warningbackground')");
    
$db->query("DELETE FROM ".$prefix."settinggroups WHERE name='Image resizer'");
}

function 
imageresizer_message($message)
{
    global 
$mybb;
    if (
$mybb->settings['image_resizer_active'] == "yes")
    {
        
$pattern '#<img(.*?)/>#';
        
$replace '<img class="postimage"$1/>';
        
$message preg_replace($pattern"$replace"$message);
    }
    return 
$message;
}

function 
imageresizer_page($page)
{
    global 
$mybb;
    
// var_dump($mybb);
    
if ($mybb->settings['image_resizer_active'] == "yes")
    {
        
$page str_replace('</head>'imageresizer_javascript().'</head>'$page);
        
$page preg_replace('#<body(.*?)>#''<body onload="resize_images()"$1>'$page);
    }
    
    return 
$page;
}

function 
imageresizer_javascript()
{
    global 
$mybb;
    
    
$maxwidth $mybb->settings['image_resizer_maxwidth'];
    
$resizewidth $mybb->settings['image_resizer_resizewidth'];
    
$borderstyle $mybb->settings['image_resizer_borderstyle'];
    
$warning $mybb->settings['image_resizer_warning']; 
    
$warningcolor $mybb->settings['image_resizer_warningcolor']; 
    
$warningbackground $mybb->settings['image_resizer_warningbackground'];
    
    
$javascript 
'<script language="javascript" type="text/javascript"><!-- 
    function resize_images() 
      { 
        for (i = 0; i < document.images.length; i++) 
        { 
            if (document.images[i].className == "postimage")
            {
                  while ( !document.images[i].complete ) 
                  { 
                     break;
                  } 
                  
                  var resized = false;
                  var oldwidth = 0;
                  if ( document.images[i].width > '
.$maxwidth.' ) 
                  { 
                      oldwidth = document.images[i].width;
                      oldheight = document.images[i].height;
                    document.images[i].width = '
.$resizewidth.'; 
                      resized = true;
                  } 
                  if ( document.images[i].style.width != "" ) 
                  { 
                      var stylewidth = document.images[i].style.width;
                      if (stylewidth.slice(stylewidth.length-2, stylewidth.length) == "px")
                      {
                          stylewidth = stylewidth.slice(0, stylewidth.length-2);
                      }
                      if ( stylewidth > '
.$maxwidth.' )
                     {     
                        document.images[i].style.width = "'
.$resizewidth.'px"; 
                        var styleheight = document.images[i].style.height;
                          if (styleheight.slice(styleheight.length-2, styleheight.length) == "px")
                          {
                              styleheight = styleheight.slice(0, styleheight.length-2);
                          }
                          document.images[i].style.height = '
.$resizewidth.' / stylewidth * styleheight + "px";
                          resized = true; 
                     }
                  } 
                  if (resized) 
                  {'
;
    if (
$borderstyle != "") {
        
$javascript .= '
                    document.images[i].style.borderTop = "'
.$borderstyle.'";
                    document.images[i].style.borderLeft = "'
.$borderstyle.'";
                    document.images[i].style.borderRight = "'
.$borderstyle.'";';
    }
    if (
$mybb->settings['image_resizer_showwarning'] == "yes") {
        
$javascript .= '
                      var parent = document.images[i].parentNode;
                      var warning = document.createElement("div");
                    warning.innerHTML = "<div>'
.$warning.'</div>";';
        if (
$warningcolor != "") {
            
$javascript .= '
                    warning.style.color = "'
.$warningcolor.'";';
        }
        if (
$warningbackground != "") {
            
$javascript .= '
                    warning.style.background = "'
.$warningbackground.'";';
        }
        if (
$borderstyle != "") {
            
$javascript .= '
                    warning.style.borderBottom = "'
.$borderstyle.'";
                    warning.style.borderLeft = "'
.$borderstyle.'";
                    warning.style.borderRight = "'
.$borderstyle.'";';
        }
        
$javascript .= '
                    warning.style.width = "'
.$resizewidth.'px";
                    parent.insertBefore(warning, document.images[i].nextSibling);'
;
    }
    else {    
        if (
$borderstyle != "") {
            
$javascript .= '
                    document.images[i].style.borderBottom = "'
.$borderStyle.'";';
        }
    }
    
$javascript .= '
                    if (document.images[i].parentNode.tagName.toLowerCase() != \'a\') {
                        document.images[i].onclick = openImage;
                    }
                  }
            }
        } 
      } 
      function openImage() {
          var winwidth = (this.naturalWidth < screen.availWidth ? this.naturalWidth : screen.availWidth);
        var winheight = (this.naturalHeight < screen.availHeight ? this.naturalHeight : screen.availHeight);
        window.open(this.src);
      } 
//--></script>'
;

    return 
$javascript;
}
?>

Written By: williamsoft man, 30th April 2009

will crash your forum

Written By: Mr.JunioR, 16th October 2011

Write Review