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.
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_resizewidth','image_resizer_borderstyle','image_resizer_showwarning','image_resizer_warning','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