Dleshka.org
Авторизация

Хак Signature Images Fixer

+10
TipTop 29-08-2009 Хаки DLE 0 комментариев
Практически во всех версиях движка присутствует возможность указания картинок в подписи. Огромным минусом этого является то, что их размер не контролируется. Т. е. запросто можно было добавить картинку хоть 1024 x 768! Приколитесь, такая подпись, да?!

Теперь настал конец такому произволу! Данный Хак не позволит опубликовать картинку больше указанных размеров! Да он еще не позволит опубликовать несуществующую картинку!

Работать будет практически на всех версиях движка.

1) Открываем ENGINE_DIR."/modules/profile.php"

находим:

$stop .= $lang['news_err_22'];
    }



добавляем ниже:

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Signature Images Fixer (c) 2009 Acuna
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$replace_a = preg_replace ("'.*?[url.*?](.*?)[/url].*?'si", "1", $_POST['signature']); // Выдираем код картинок из подписи
$replace = preg_replace ("'.*?[img.*?](.*?)[/img].*?'si", "1", $replace_a);  // Теперь выдираем ссылки на них

$explode = explode (" ", $replace); // Разбиваем полученную строку на разные картинки
$count = count ($explode); // Считаем кол-во картинок

foreach (range(0, $count-1) as $number) // Сажаем на счетчик
{

$link = $explode[$number]; // Финальная ссылка
$name = basename ($link); // Имя картинки

$type = explode (".", $name); // Получаем расширение
$end = end ($type); // Переходим к последнему элементу массива

if (is_file ($link))
  {
if ($end == "jpg") $img = imagecreatefromjpeg ($name); // Создаем изображения
if ($end == "gif") $img = imagecreatefromgif ($name);
if ($end == "png") $img = imagecreatefrompng ($name);
if ($end == "bmp") $img = imagecreatefrombmp ($name);

} else {

$find = array ('{%name%}');
$replace = array ($name);

$not_found_mess = str_replace ($find, $replace, $lang['reg_pic_notfound']);

$stop .= $not_found_mess;

}

if ($img) // Проверяем, получилось-ли
  {
$width = @imagesx ($img); // Получаем длину картинки
$height = @imagesy ($img); // Получаем высоту картинки

if ($width > 350 or $height > 19) // Сравниваем
    {

$find = array ('{%name%}', '{%width%}', '{%height%}');
$replace = array ($name, "350", "19");

$mess_error = str_replace ($find, $replace, $lang['reg_pic_big']);

$stop .= $mess_error;

    }
  }
}

// Вот и все! :) !!! СЛАВА СИМПСОНАМ !!!

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
///Signature Images Fixer (c) 2009 Acuna
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



2) Открываем ROOT_DIR."
/language/Russian/website.lng
"

находим:

'pm_del'            =>    "удалить",


добавляем ниже:

'reg_pic_big' => "<li>Картинка <b>{%name%}</b> слишком большая! Размер картинки в подписи может быть не более {%width%} по горизонтали, и {%height%} по вертикали</li>",

'reg_pic_notfound' => "<li>Картинка {%name%} не существует!</li>",


3) Меняем "350" и "19" на нужные нам максимальные размеры.

Вот и все! :) !!!
Информация
Зарегистрируйтесь чтобы комментировать публикацию.
Авторизация