Регистрация

Signature Images Fixer

TipTop 29-08-2009, 18:44 1944 Хаки DLE

Практически во всех версиях движка присутствует возможность указания картинок в подписи. Огромным минусом этого является то, что их размер не контролируется. Т. е. запросто можно было добавить картинку хоть 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" на нужные нам максимальные размеры.

Вот и все! :) !!!

Другие публикации по категории:

Продвинутый вывод рейтинговых новостей с описанием и картинкой

Кнопка "прочитать" в окне о новом ЛС

Простое решение против спамеров

Просилка регистраций как на AJAX

Хак Шкала приватных сообщений


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Powered by Dleshka.org. Сайт предназначен для выбора шаблонов и дополнений с использованием CMS DataLife Engine.
Закрыть