[Другое] Цитатник от jon4god (lsass.exe)

Revenge-R, отбой, сделал уже.
 
Эк меня долго не было =)
Возникла необходимость заделать отдельный вывод изображений в цитатнике. Т.е. не вперемежку с цитатами а отдельной страничкой а-ля башевские комиксы. Соответственно выглядеть весь процесс должен так:
в админке пункт "добавить изображение" - изображение грузится на сайт, после чего появляется на страничке изображений. По 1 изображению на страничке + возможность комментировать.
Пока что накопала загрузку и обработку картинок на примере аватар. Если кто-то поможет допилить их в админку и на отдельную страничку вывода - будет здорово=)
Вот форма загрузки:

HTML:
<form action='update_user.php' method='post' enctype='multipart/form-data'>
Ваш аватар:<br>
<img alt='аватар' src='$myrow[avatar]'><br>
Изображение должно быть формата jpg, gif или png. Изменить аватар:<br>
<input type="FILE" name="fupload">
<input type='submit' name='submit' value='изменить'>
</form>
[/spoil]


Обработчик:

[spoil]
PHP:
$path_to_90_directory = 'avatars/';//папка, куда будет загружаться начальная картинка и ее сжатая копия
 
   
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
    {   
             
        $filename = $_FILES['fupload']['name'];
        $source = $_FILES['fupload']['tmp_name'];   
        $target = $path_to_90_directory . $filename;
        move_uploaded_file($source, $target);//загрузка оригинала в папку $path_to_90_directory
 
    if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
    $im = imagecreatefromgif($path_to_90_directory.$filename) ; //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
    }
    if(preg_match('/[.](PNG)|(png)$/', $filename)) {
    $im = imagecreatefrompng($path_to_90_directory.$filename) ;//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
    }
   
    if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
        $im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
    }
   
//СОЗДАНИЕ КВАДРАТНОГО ИЗОБРАЖЕНИЯ И ЕГО ПОСЛЕДУЮЩЕЕ СЖАТИЕ ВЗЯТО С САЙТА www.codenet.ru
 
// Создание квадрата 90x90
// dest - результирующее изображение
// w - ширина изображения
// ratio - коэффициент пропорциональности
 
$w = 90;  // квадратная 90x90. Можно поставить и другой размер.
 
// создаём исходное изображение на основе
// исходного файла и определяем его размеры
$w_src = imagesx($im); //вычисляем ширину
$h_src = imagesy($im); //вычисляем высоту изображения
 
        // создаём пустую квадратную картинку
        // важно именно truecolor!, иначе будем иметь 8-битный результат
        $dest = imagecreatetruecolor($w,$w);
 
        // вырезаем квадратную серединку по x, если фото горизонтальное
        if ($w_src>$h_src)
        imagecopyresampled($dest, $im, 0, 0,
                          round((max($w_src,$h_src)-min($w_src,$h_src))/2),
                          0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
 
        // вырезаем квадратную верхушку по y,
        // если фото вертикальное (хотя можно тоже серединку)
        if ($w_src<$h_src)
        imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w,
                          min($w_src,$h_src), min($w_src,$h_src));
 
        // квадратная картинка масштабируется без вырезок
        if ($w_src==$h_src)
        imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);
       
 
$date=time(); //вычисляем время в настоящий момент.
imagejpeg($dest, $path_to_90_directory.$date.".jpg");//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен.
 
//почему именно jpg? Он занимает очень мало места + уничтожается анимирование gif изображения, которое отвлекает пользователя. Не очень приятно читать его комментарий, когда краем глаза замечаешь какое-то движение.
 
$avatar = $path_to_90_directory.$date.".jpg";//заносим в переменную путь до аватара.
 
$delfull = $path_to_90_directory.$filename;
unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру.


Соответственно, аватарки меняем на картинки, размер тоже правим. Грузят картинки только админы, пользователям это не надо.
 
kreator, так выкладывай, чтобы не спрашивали больше.
 
А, еще одна вещь. Если вы не обращали вдруг внимания, особенно на более старых версиях цитатника - во вкладке админки "о цитатнике" текст просмотрите не через редактор, а через исходник. Там в описании и правилах может находиться какая-то iframe ссылка.
 
Незнаю, сейчас просмотрел все - вроде ничего подозрительного нету. zavu, может тебе после атак/взломов чего подсадили?
 
Немного оклемался после праздников и выкладываю):(
Что бывести что-либо после n-ой цитаты с списке, надо:
В файле Index.php где то в начале пишем:
Код:
$adv = 0;
Дальше после строчки:
Код:
echo showquote($r['id'],$r['content'],$r['moderator'],$r['date'],$r['rating']);
Пишем это:
Код:
$adv = $adv+1;
if ($adv == 10)  echo 'Тут ваш рекламный блок';
Цифру 10 меняем на ту, после какой по счету цитаты планируется вывод.
 
  • Нравится
Реакции: zavu
Незнаю, сейчас просмотрел все - вроде ничего подозрительного нету. zavu, может тебе после атак/взломов чего подсадили?
Может и так, но на всякий случай сказала. Мало ли чего, лучше проверить и не найти, чем не проверить, и оставить фрейм =)

Креатор, как раз думала блок тизеров или адсенса повесить, сэкономил время =)))
 
а где последнюю версию взять?
 
а дамп - quotes.sql можно где-то найти? в последнем архиве Tips v.1.5 не нашел :nezn: Или как правильно установить без него?
 
Назад
Сверху