Доп. поле для загрузки и вывода картинки в Dle

Тема в разделе "Веб-разработка", создана пользователем clinoc11, 13 дек 2011.

Статус темы:
Закрыта.
  1. clinoc11

    clinoc11 На форуме с: 8 дек 2011 Сообщения: 14

    Здраствуйте, я совсем недавно начал тестить Dle, двиг очень гибок, это я понял сразу и начал подгонять его под себя.
    Изменил форму добавления новостей на сайт, убрал старые поля, добавил новые, но в конце столкнулся с проблемой которую самостоятельно мне не решить (опыта мало и знаний).
    Мне нужно добавить поле в виде одной строки, для загрузки картинки, так чтобы кликнув по кнопке, выбрать файл с компа и в строке появится адрес, а после добавления в новости появится картинка.
    Вот пример такой формы - http://darksound.ru/addnews.html
    Помогите, За ранее Спасибо!!
  2. Miha_Kregov

    Miha_Kregov На форуме с: 23 июн 2011 Сообщения: 402

    Re: доп поле для загрузки и вывода картинки в Dle

    в форм добавить

    enctype=multipart/form-data

    поле так:

    <input type=file name=uploadfile>

    и на сервере принимайте переменную пхп $_FILES['uploadfile']['tmp_name'] и используйте ф-ию move_uploaded_file() для сохранения

    Помните, что нужно делать обязательную проверку на тип загружаемого файла, лучше его переименовывать и пирводить к заданному типу, а также проверять размер картинки и вообще существует ли он, чтобы злоумышленники не смогли загрузить шел. У неопытных программистов это самая частая дыра, как раз в загрузках файлов, так как разрешено грузить вообще всё подряд.
    1 человеку нравится это.
  3. clinoc11

    clinoc11 На форуме с: 8 дек 2011 Сообщения: 14

    Re: доп поле для загрузки и вывода картинки в Dle

    Если бы знать куда это вписывать)))), Я чайник.:a11:

    ---------- Сообщение добавлено в 19:42 ---------- Предыдущее сообщение размещено в 17:49 ----------

    Вот я создал поле images, есть файлы addnews, shortstory, что куда вставлять?
  4. Miha_Kregov

    Miha_Kregov На форуме с: 23 июн 2011 Сообщения: 402

    Re: доп поле для загрузки и вывода картинки в Dle

    дайте код файла откуда форма отправляется и код файла куда она отправляется
    1 человеку нравится это.
  5. clinoc11

    clinoc11 На форуме с: 8 дек 2011 Сообщения: 14

    Re: доп поле для загрузки и вывода картинки в Dle

    Я большими буквами написал, где планирую выводить доп поля.
    Вот код формы добавления материала addnews.PTL изменен мной
    PHP:
     <div class="News">
                                 <
    div class="TitleNews">
                                     <
    div class="TextTitleStatic">Добавление альбома</div>
                                 </
    div>
                                 <
    div class="Text">
                 
                 
                 
                 
                 
                 
                 
                 
                 <!-- 
    мои поля для DLE addnews начало -->
                 
                 
                 
                 <
    div class="RowAddNews Clearr">

                 <!-- 
    ЗДЕСЬ НУЖНА ФОРМА ДЛЯ КАРТНКИ -->

                 <
    div class="LeftColRow"><br><b>*исполнитель:</b><input type="text" name="xfield[ispolnitel]" value="" maxlength="150" class="AddNewsInput"></div>
                 <
    div class="LeftColRow"><br><b>*альбом:</b><input type="text" name="xfield[albom]" value="" maxlength="150" class="AddNewsInput"></div>
                 <
    div class="LeftColRow"><br><b>*Категория:</b>&nbsp;&nbsp;{category}</div
                 <
    div class="LeftColRow"><br><b>точный стиль:</b><input type="text" name="xfield[styl]" value="" maxlength="150" class="AddNewsInput"></div>
                 <
    div class="LeftColRow"><br><b>страна:</b><input type="text" name="xfield[strana]" value="" maxlength="150" class="AddNewsInput"></div>
                 <
    div class="LeftColRow"><br><b>*год:</b><input type="text" name="xfield[god]" value="" maxlength="150" class="AddNewsInput"></div>
                 <
    div class="LeftColRow"><br><b>*формат:</b><input type="text" name="xfield[format]" value="" maxlength="150" class="AddNewsInput"></div>
                 <
    div class="LeftColRow"><br><b>*размер:</b><input type="text" name="xfield[razmer]" value="" maxlength="150" class="AddNewsInput"></div>
                 
                 </
    div>    
                 
                 <
    div class="RowAddNews">
                     <
    div class="LeftColRow"><p>*треклист/описание:</p>[not-wysywyg]<textarea name="short_story" id="short_story" onclick=setFieldName(this.name) class="Textarea_Short">{short-story}</textarea>[/not-wysywyg]{shortarea}</div
                 </
    div>    
                 
                 <
    div class="RowAddNews Clearr">
                 <
    center><b><br>Здесь вставьте ссылки на файлы видаhttp://ваш адрес<b></center>
                 
    <div class="LeftColRow"><b>с depositfiles</b><input type="text" name="xfield[depositfiles]" value="" maxlength="150" class="AddNewsInput"></div
                 <
    div class="LeftColRow"><b>с turbobit</b><input type="text" name="xfield[turbobit]" value="" maxlength="150" class="AddNewsInput"></div
                 <
    div class="LeftColRow"><b>с letitbit</b><input type="text" name="xfield[letitbit]" value="" maxlength="150" class="AddNewsInput"></div
                 
                 </
    div>    


                 <!-- 
    мои поля для DLE addnews конец -->




                     
                 <
    div class="RowAddNews">
                     <
    div class="LeftColRow"><br>Ключевые слова</div><div class="RightColRow"><input type="text" name="tags" value="{tags}" maxlength="150" class="AddNewsInput"></div
                 </
    div>
                 [
    sec_code
                 <
    div class="RowAddNews" id="SecCodeAdd">
                     <
    div class="LeftColRow"><class="middle">Код:</p></div><div class="RightColRow"><div id="Sec">{sec_code}</div></div
                 </
    div>
                 <
    div class="RowAddNews">
                     <
    div class="LeftColRow">Введите код:</div><div class="RightColRow"><input type="text" name="sec_code" id="sec_code" class="AddNewsInput"></div
                 </
    div>                 
                 [/
    sec_code
                 <
    div class="RowAddNews">
                     <
    div class="LeftColRow"></div><div class="RightColRow">{admintag}</div
                 </
    div>    
                 <
    div class="RowAddNews">
                     <
    div class="RightColRow"><input class="bbcodes" type="submit" name="add" value="отправить"><input class="bbcodes" type="button" name="nview" onClick="preview()" value="просмотр"></div
                 </
    div>            
                                 </
    div>                         
                             </
    div>                
    А это форма вывода fullstory.TPL здесь я только поля под ссылки вывел:
    PHP:
    {poll}
                 <
    div class="News">
                     <
    div class="TitleNews">
                       <
    div class="TextTitle"><h1>{title}</h1></div>
                         <
    div class="SubTitle"><ul><li>{link-category}</li><li>Автор: {author}</li><li>{date}</li>[edit]<li><img src="{THEME}/images/edit.png" alt="Редактировать новость"></li>[/edit][complaint]<li><img src="{THEME}/images/complaint.png" title="Сообщить о ошибке" alt="Сообщить о ошибке"/></li>[/complaint]</ul></div>
                   </
    div>
                   <
    div class="Text">
    {
    full-story}[tags]<br /><br /><div class="border">Ключевые теги: {tags}</div>[/tags][edit-date]<br /><br /><span class="copy"><i>Новость отредактировал <font color="red"><strong>{editor}</strong></font> - {edit-date}</i></span>[edit-reason]<div class="quote">Причина: {edit-reason}</div>[/edit-reason][/edit-date]






    <!-- 
    мои поля для DLE вывод полей в новость начало -->

    <!-- 
    ТУТ ВЫВОД КАРТИНКИА ПОТОМ Я ОСТАЛЬНЫЕ ПОЛЯ ВЫВЕДУ -->
     
    <
    noindex>
    <
    br>
    <
    br>
    <
    br>
    <
    br>
    <
    div class="quote">
    <
    center>
    [
    xfgiven_depositfiles] <a href="[xfvalue_depositfiles]">скачать с depositfiles</a> [/xfgiven_depositfiles]<br>
    [
    xfgiven_turbobit] <a href="[xfvalue_turbobit]">скачать с turbobit</a> [/xfgiven_turbobit]<br>
    [
    xfgiven_letitbit] <a href="[xfvalue_letitbit]">скачать с letitbit</a> [/xfgiven_letitbit]
    </
    center>
    </
    div>
    <
    br>
    </
    noindex>

    <!-- 
    мои поля для DLE вывод полей в новость начало -->






                   </
    div>

                       <
    div class="BottomNews">
                         <
    div class="TextBottomNewsFull">
                             <
    div class="BottomCol">{rating}</div>
                               <
    div class="BottomCol"><div class="BottomCol"></div></div>
                                 <
    div class="BottomCol">Комментариев: <span>{comments-num}</span></div>
                                   <
    div class="BottomCol">[print-link]Print[/print-link]</div>

                       </
    div><div class="Clear"></div>
                     </
    div>  
      

    [
    not-category=82]               <div class="BottomBlock">
                       <
    div class="TitleBottomBlock">Другие альбомы</div>
                           <
    div class="TextBottomBlock2" id="Related">
                               <
    ul>{related-news}</ul>
                           </
    div>
                   </
    div>[/not-category]

                   <
    div class="BottomBlock">
                           <
    div class="TextBottomBlock" align="center">
    <
    script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script>
    <div class="yashare-auto-init" data-yashareType="link" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,friendfeed,lj"></div>



                           </div>
                   </div>    
                                  
                 </div>
    <div align="center">{pages}</div> 
  6. Miha_Kregov

    Miha_Kregov На форуме с: 23 июн 2011 Сообщения: 402

    Re: доп поле для загрузки и вывода картинки в Dle

    На сколько я знаю php код не работает в файлах формата .tpl.

    Есть два варианта:

    1. Если DLE ниже 6ой версии, то можно подключить хак для выполнения пхп внутри шаблонизаторов.

    2. Отправлять форму в другой файл формата php.

    Я думаю вам больше подойдет второй вариант, напишите в какую директорию должны сохраняться картинки и с какими именами, а также допустимые форматы картинок.
    1 человеку нравится это.
  7. clinoc11

    clinoc11 На форуме с: 8 дек 2011 Сообщения: 14

    Re: доп поле для загрузки и вывода картинки в Dle

    в папку - /uploads/image
    форматы - jpg, jpeg, gif
    имена либо те которыми они уже называются, либо просто номер по порядку, но лучше название которым они уже именуются.

    ---------- Сообщение добавлено 18.12.2011 в 16:05 ---------- Предыдущее сообщение размещено 15.12.2011 в 19:04 ----------

    А еще макс размер картинки 50 кб, а разрешение 200х200
Similar Threads
  1. Rantip
    Ответов:
    4
    Просмотров:
    1.002
  2. oe_sup
    Ответов:
    2
    Просмотров:
    1.110
  3. Kovtun
    Ответов:
    19
    Просмотров:
    2.432
  4. Петя
    Ответов:
    12
    Просмотров:
    669
  5. SunSpot
    Ответов:
    5
    Просмотров:
    1.561
Загрузка...
Статус темы:
Закрыта.