Как добавлять фотографии в новости?

Статус
В этой теме нельзя размещать новые ответы.

web-investor

Постоялец
Регистрация
19 Окт 2007
Сообщения
504
Реакции
113
Здравствуйте!

Делаю сайт для диплома.. Возникла такая задача: в админке есть возможность добавлять новость через определенную форму... как сделать чтоб в этой же форме можно было добавлять к новости фотографию, таким образом чтоб было поле для указания пути к файлу, кнопка обзор и кнопка добавить, т.е. чтоб пользователь, не обладающий никакими знаниями, нажал на кнопку и все готово :)

В общем нужно, что-то наподобии этого:

Но только, для фотографий.

Подскажите, пожалуйста...
 
Тебе надо поставить на сайт практически любой WYSIWYG редактор для твоей формы, и в случае если новости пишутся как HTML в базу или в файл, то этот редактор позволит тебе без лишних движений организовать то что надо.
 
Сомневаюсь что ему под силу будет внедрить форму загрузки фотографии и обработчик сохранения...

Возникла такая задача: в админке
Этим все сказанно, если есть админка следовательно не сам писал, значит движок стоит.

И опять не понятно что за картинку ты хочешь добавить, если картинку анонса, то WYSIWYG редактором не отделаешься, нужно в базе добавлять доп поля для картинки.



Очень мало информации то чего тебе нужно, телепатия вещь хорошая, но порой она изматывает.
ps: ты где учишься, и кто у тебя будет проверять диплом, подумай.. За частую эти люди сами ничего в этом не понимают..
 
Ну на самом деле не такая уж и сложная задача, если конечно знаешь как: добавить в в форму ID а после формы код небольшой, вот собственно и все:

HTML:
<textarea id="body" name="name"></textarea>

<Script type="text/javaSCRIPT" src="/fckeditor/fckeditor.js">       </SCRIPT>
    <Script type="text/javaSCRIPT">
     var oFCKeditor = new FCKeditor("body");
     oFCKeditor.ToolbarSet="Default";
     oFCKeditor.BasePath="/fckeditor/";
     oFCKeditor.ReplaceTextarea();
    </SCRIPT>

ну ессно по адресу /fckeditor/fckeditor.js должна быть соответствующая программка, которая свободно скачивается с Для просмотра ссылки Войди или Зарегистрируйся. Вот и все, чего ж там сложного, всего-то скачать набор скриптов, закачать их на свой сайт, и подправить форму.

Справедливости ради скажу, что если надо еще и файлы закачивать на сервер к себе, а именно оно и надо, то там в скачанных скриптах надо найти и подредактировать одну строчку, уж не помню где, но тут точно на форуме есть эта инфа, по умолчанию upload на сервер отключен, в целях безопасности. Ну и ессно права на папку куда все будет закачиваться выставить 777.

Вот мой комплект, работает у меня на сайте, уже с закачкой, только сделать код как я писал в форме:
 
fckeditor тебе отлично подойдет для таких целей... Очень удобный и простой в использовании и настройке! Давно использую, во всем устраивает!
 
аналагично только в оперере работают пункты текстовой панели, остальные попусту не отображают содержимое, на жумле 1 0 15
 
Сначала нужно изменить заголовок формы и ввести поле
HTML:
<form name=form enctype='multipart/form-data' action=<?php echo $action; ?> method=post>
<input class=input type=file name=img_dupa>

Затем в обработчик формы добавить обработку этого поля, примерно так:
PHP:
<?php

//правишь $path - указываешь путь к папке, где будут рисунки и выставляешь на нее прова 777

//добавляем рисунок
  $img_dupa = "";
 
     // Если поле выбора малого изображения не пустое - закачиваем его на сервер
  if (trim($_FILES['img_dupa']['tmp_name']) != "" && trim($_FILES['img_dupa']['name']) != "-")
         { 

//ТУТ ПРАВИТЬ!!
  $path = "../VASHA DIR/images/im_".date("YmdHis",time()).strrchr($_FILES['img_dupa']['name'], "."); 
 $size_img = getimagesize($_FILES['img_dupa']['tmp_name']);
   // Если размеры меньше, то масштабирования не нужно
    if (($size_img[0]<$w) && ($size_img[1]<$h)) 
	{
	if(!resizeimg($_FILES['img_dupa']['tmp_name'], $path, $size_img[0], $size_img[1]))
     {
    echo
          "Ошибка при создании уменьшенной копии изображения с
           помощью библиотеки GDLib");
     }

}
	else
{ 
  
  
  if(!resizeimg($_FILES['img_dupa']['tmp_name'], $path, $w, $h))
     {
   echo
          "Ошибка при создании уменьшенной копии изображения с
           помощью библиотеки GDLib");
     }
	}
	 unlink($_FILES['img_dupa']['tmp_name']);	
	 $img_dupa = $path;

         }	

// $img_dupa пишется в базу, нужно создать текстовое поле

?>

Функция резки рисунков

PHP:
<?php
//$w, $h - ширина и высота рисунка после резки
 function resizeimg($filename, $smallimage, $w, $h)
  {
    // Имя файла с масштабируемым изображением
   // $filename = "../".$filename;
    // Имя файла с уменьшенной копией.
    $smallimage = "../".$smallimage;    
    // определим коэффициент сжатия изображения, которое будем генерить
    $ratio = $w/$h;
    // получим размеры исходного изображения
    $size_img = getimagesize($filename);
    // Если размеры меньше, то масштабирования не нужно
    if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
    // получим коэффициент сжатия исходного изображения
    $src_ratio=$size_img[0]/$size_img[1];

    // Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились 
    // пропорции исходного изображения
    if ($ratio<$src_ratio)
    {
      $h = $w/$src_ratio;
    }
    else
    {
      $w = $h*$src_ratio;
    }
    // создадим пустое изображение по заданным размерам 
    $dest_img = imagecreatetruecolor($w, $h);  
    $white = imagecolorallocate($dest_img, 255, 255, 255);       
    if ($size_img[2]==2)  $src_img = imagecreatefromjpeg($filename);                      
    else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename);                      
    else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename); 

    // масштабируем изображение     функцией imagecopyresampled()
    // $dest_img - уменьшенная копия
    // $src_img - исходной изображение
    // $w - ширина уменьшенной копии
    // $h - высота уменьшенной копии        
    // $size_img[0] - ширина исходного изображения
    // $size_img[1] - высота исходного изображения
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);                
    // сохраняем уменьшенную копию в файл 
    if ($size_img[2]==2)  imagejpeg($dest_img, $smallimage);                      
    else if ($size_img[2]==1) imagegif($dest_img, $smallimage);                      
    else if ($size_img[2]==3) imagepng($dest_img, $smallimage); 
    // чистим память от созданных изображений
    imagedestroy($dest_img);
    imagedestroy($src_img);
    return true;         
  }  
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху