[ищу] Модуль загрузки картинок пачками v2

Тема в разделе "DLE", создана пользователем bumer3, 27 мар 2008.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    Ктото в коментах писал что модуль есть в паблике... Но я не нашел у кого есть поделитесь плиз


    Инфа о модуле:
    Модуль, позволяющий загружать картинки на Ваш сайт сразу в большом количестве.
    [​IMG]
    [​IMG]
    [​IMG]

    видео демонстрации работы:
    _http://ifolder.ru/4942275
    Название: clip0001.rar
    Размер: 424.05 кб
    Доступен до: 2008-04-13 18:38:07


    Исправления:
    теперь модуль работает даже если авторизационные куки хранятся в сессии PHP.
    исправление багов в IE.
    исправление багов с русскими никами

    Возможности:
    * выбор сразу множества файлов
    * полная интеграция с заливкой картинок DLE (удаление вместе с новостью, автоудаление)
    * Кнопка "Добавить все"
    * картинки вставляются в новость с тэгом BR после каждой
    * индикация процесса загрузки при помощи прогрессбара
    * возможность отменить загрузку всех или выбранных
    * возможность поштучно отменить загрузку в процессе самой загрузки
    * благодяря использованию FLASH - весь интерфейс работает без перезагрузки страницы
    * после загрузки ссылки сразу отображаются в форме загрузки - нет необходимости ожидать окончания загрузки и потом обновлять страницу

    Есть готовое для 5.0 5.7 6.3 6.5 и 6.7 версий двига
    обращаться в ICQ 232521 пн-пт с 9 до 18 по Московскому времени.
    цена 10wmz
     
  2. kwin

    kwin

    Регистр.:
    22 авг 2007
    Сообщения:
    413
    Симпатии:
    167
    например вот

    http://4cms.ru/dle/dle-hacks/171-khak-mnogo-zagruzki-kartinok.html
     
    bumer3 нравится это.
  3. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    Спасибо. Но хотелось бы 2 версию а это 1-я ... Но тем не мение то что мне щас надо.

    Добавлено через 10 минут
    Щас занимаюсь добыванием исходников... когда сделаю, выложу

    Добавлено через 16 минут
    Исходник swf_upload.php из ссылки выше

    PHP:
    <?php
    if(!defined('DATALIFEENGINE'))
    {
      die(
    "Hacking attempt!");
    }
    function 
    win2uni($s)
    {
        
    $s convert_cyr_string($s,'w','i');
        for (
    $result=''$i=0$i<strlen($s); $i++) {
            
    $charcode ord($s[$i]);
            
    $result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
        }
        return 
    $result;
    }


    function 
    echo_header_part_upload()
    {
    global 
    $config$area$news_id$author;

        if (
    $_SESSION['dle_name'] != "") {
            
    $username $_SESSION['dle_name'];
            
    $cmd5_password $_SESSION['dle_password'];
        } elseif (
    $_COOKIE['dle_name'] != "") {
            
    $username $_COOKIE['dle_name'];
            
    $cmd5_password $_COOKIE['dle_password'];
        }

    $relative_upload ='engine/inc/SWFUpload';
    $adm_path "/".(isset($config['admin_path'])?$config['admin_path']: 'admin.php');
    echo <<<HTML
            <!-- added by Romen begin-->
        <link href="
    $relative_upload/css/swf_upload.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="
    $relative_upload/js/swfupload.js"></script>
        <script type="text/javascript" src="
    $relative_upload/js/handlers.js"></script>
        <script type="text/javascript" src="
    $relative_upload/js/swfupload.queue.js"></script>

        <script type="text/javascript" src="
    $relative_upload/js/swfupload.cookies.js"></script>
        <script type="text/javascript" src="
    $relative_upload/js/swfupload.graceful_degradation.js"></script>
        <script language="javascript" type="text/javascript">
            var swfu;
            var params = new Object();
            params["quickmanyupload"] = "1";
            params["mod"] = "files";
            params["action"] = "quick";
            params["area"] = "
    $area";
            params["author"] = "
    {$author}";
            params["news_id"] = "
    {$news_id}";
            params["make_watermark"] = "yes";
            params["make_thumb"] = "make_thumb";
            params["t_size"] =  "
    {$config['max_image']}";
            params["t_seite"] = "1";
            params["dle_name"] = "
    $username";
            params["dle_password"] = "
    $cmd5_password";
            function domLoader(){
                if (arguments.callee.done){
                return;
                }
                arguments.callee.done = true;
                // do stuff
                swfu = new SWFUpload({
                        upload_url : "
    $adm_path",
                        post_params: params,
                        file_size_limit : 3072000,
                        file_types : "*.gif;*.jpg;*.png;*.jpe;*.jpeg",
                        file_types_description : "Image files...",
                        file_upload_limit : "0",
                        file_queue_limit : "0",
                        file_dialog_start_handler : fileDialogStart,
                        file_queued_handler : fileQueued,
                        file_queue_error_handler : fileQueueError,
                        file_dialog_complete_handler : fileDialogComplete,
                        upload_start_handler : uploadStart,
                        upload_progress_handler : uploadProgress,
                        upload_error_handler : uploadError,
                        upload_success_handler : uploadSuccess,
                        upload_complete_handler : uploadComplete,
                        flash_url : "../
    $relative_upload/swfupload_f9.swf",
                        swfupload_element_id : "flashUI1",
                        degraded_element_id : "degradedUI1",
                        custom_settings : {
                            progressTarget : "fsUploadProgress1",
                            cancelButtonId : "btnCancel1"
                        },
                        debug: false
                    });
                swfu.refreshCookies();
            };

    document.write('<script id="__init_script" defer="true" src="//[]"></'+'script>');

    function registerInit(callback) {
    /* for Mozilla */
    if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", callback, false);
    }
    /* for Internet Explorer */
    if (document.getElementById) {
    var deferScript = document.getElementById('__init_script');
    if (deferScript) {
    deferScript.onreadystatechange = function() {
    if (this.readyState == 'complete') {
    callback();
    }
    };
    /* check whether script has already completed */
    deferScript.onreadystatechange();
    /* clear reference to prevent leaks in IE */
    deferScript = null;
    }
    }
    /* for other browsers */
    window.onload = callback;
    }
    registerInit(domLoader);
    </script>
    <!-- added by Romen end-->
    HTML;
    return 
    true;
    }
    function 
    echo_form_upload()
    {
    global 
    $config$lang;
    if (
    $member_db[1] < 3) {
    $_REQUEST['t_seite'] = intval($_REQUEST['t_seite']);
    $t_seite_selected[$_REQUEST['t_seite']] = "selected";
    $ttmmpp22 "{$lang['upload_t_size']}&nbsp;<input class=\"edit\" type=\"text\" name=t_size id=t_size_id size=6 value=\"{$config['max_image']}\" onchange = \"params['t_size'] = document.getElementById('t_size_id').value;swfu.setPostParams(params);\""
    .">&nbsp;px&nbsp;<select name=t_seite id=t_seite_id onchange=\"params['t_seite'] = document.getElementById('t_seite_id').value;swfu.setPostParams(params);\"><option value=\"0\" {$t_seite_selected[0]}>{$lang['upload_t_seite_1']}</option><option value=\"1\" {$t_seite_selected[1]}>{$lang['upload_t_seite_2']}</option><option value=\"2\" {$t_seite_selected[2]}>{$lang['upload_t_seite_3']}</option></select>";
    }
    if(!
    extension_loaded("gd")) $ttmmpp "<font color=red><b>$lang[images_nogd]</b></font>";
    else 
    $ttmmpp "<input type=checkbox name=make_thumb value='make_thumb' id=make_thumb_id checked onclick = \"if (document.getElementById('make_thumb_id').checked) {params['make_thumb'] = 'make_thumb';}else{params['make_thumb'] = '';};swfu.setPostParams(params);\"> <label for=make_thumb>$lang[images_ath]</label></b>";
    if(
    $config['allow_watermark'] == "yes"$ttmmpp .= "<br /><input type=checkbox name=make_watermark value='yes' id=make_watermark checked onclick = \"if (document.getElementById('make_watermark').checked) {params['make_watermark'] = 'yes';}else{params['make_watermark'] = null;};swfu.setPostParams(params);\"> <label for=make_watermark>$lang[images_water]</label></b>";
      else 
    "<script language=\"javascript\" type=\"text/javascript\">params['make_watermark'] = null;swfu.setPostParams(params);</script>";
    echo <<<HTML
      <!-- added by Romen begin form for SWF workaround-->

                <form action="" method="post" enctype="multipart/form-data">
                            <div id="flashUI1" style="display: none;">
                                <fieldset class="flash" id="fsUploadProgress1">
                                    <legend>Загрузка пачками</legend>
                                </fieldset>
                                <div>
                                    
    $ttmmpp22
                                    
    $ttmmpp
                                    <br>
                                    <input class=edit type="button" value="Выбрать файлы" onclick="swfu.selectFiles()" style="font-size: 8pt;" />

                                    <input class=edit type="button" value="Загрузить все" onclick="swfu.startUpload()" style="font-size: 8pt;" />
                                    <input class=edit id="btnCancel1" type="button" value="Отменить все" onclick="cancelQueue(swfu);" disabled="disabled" style="font-size: 8pt;" /><br />
                                </div>
                            </div>
                            <div id="degradedUI1">
                                <fieldset>
                                    <legend>Загрузка пачками работает только с FLASH после 9 версии.</legend>
                                </fieldset>

                            </div>
                </form>
    <!-- added by Romen end-->
    HTML;
    return 
    true;
    }
    if(isset(
    $_REQUEST['quickmanyupload'])) {

    $keys array_keys($_REQUEST);
    $i=0;
    foreach (
    $_REQUEST as $row)
    {
        if (
    is_string($row))
        {
            
    $_REQUEST[$keys[$i]] = iconv("UTF-8""windows-1251"$row);
        }
        
    $i++;
    }

    $author iconv("UTF-8""windows-1251"$author);

    define('FOLDER_PREFIX'date("Y-m"));
    if (
    $member_db[1] < 3) {
        
    $config['max_image'] = intval($_POST['t_size']) ? intval($_POST['t_size']) : intval($config['max_image']);
    } else {
        
    $config['max_image'] = intval($config['max_image']);
        
    $_POST['t_seite'] = 0;
    }

    if (isset (
    $_REQUEST['wysiwyg'])) $wysiwyg $_REQUEST['wysiwyg']; else $wysiwyg 0;
        if (!isset(
    $_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) {
            
    header("HTTP/1.1 500 Internal Server Error");
            echo 
    "invalid upload";
            exit(
    0);
        }
        
    $userdir "posts/";
        if (!
    is_dir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX)) {
            @
    mkdir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX0777);
            @
    chmod(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX0777);
            @
    mkdir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX."/thumbs"0777);
            @
    chmod(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX."/thumbs"0777);
        }
        if (!
    is_dir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX)) {
            
    header("HTTP/1.1 500 Internal Server Error");
            echo 
    "error Directory Error /uploads/posts/".FOLDER_PREFIX."/ cannot created.";
            exit(
    0);
        }
        
    $config_path_image_upload ROOT_DIR."/uploads/posts/".FOLDER_PREFIX."/";
               
    $file_prefix time() + rand(1100);
            
    $file_prefix .= "_";
    if(
    count($_FILES) > 0)
    {
        
    $userdir "posts/";
        if (!
    is_dir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX)) {
            @
    mkdir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX0777);
            @
    chmod(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX0777);
            @
    mkdir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX."/thumbs"0777);
            @
    chmod(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX."/thumbs"0777);
        }
        if (!
    is_dir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX)) {
            
    header("HTTP/1.1 500 Internal Server Error");
            echo 
    "error Directory Error /uploads/posts/".FOLDER_PREFIX."/ cannot created.";
            exit(
    0);
        }

               
    $image_name $_FILES["Filedata"]['name'];
               
    $img_name_arr explode(".",$image_name);
               
    $type         totranslit(end($img_name_arr));
                       if(
    $image_name != "") {
                        
    $curr_key key($img_name_arr);
                        unset (
    $img_name_arr[$curr_key]);
                        
    $image_name  totranslit(implode("."$img_name_arr)).".".$type;
                    }
                @
    move_uploaded_file($_FILES["Filedata"]['tmp_name'], $config_path_image_upload.$file_prefix.$image_name);
                if(@
    file_exists($config_path_image_upload.$file_prefix.$image_name))
                {
                   @
    chmod ($config_path_image_upload.$file_prefix.$image_name0666);
                      {
                           
    $row $db->super_query("SELECT COUNT(*) as count FROM " PREFIX "_images where author = '$author' AND news_id = '$news_id'");
                              if(!
    $row['count']) {
                                 
    $added_time time()+ ($config['date_adjust']*60);
                                 
    $inserts FOLDER_PREFIX."/".$file_prefix.$image_name;
                                 
    $db->query("INSERT INTO " PREFIX "_images (images, author, news_id, date) values ('$inserts', '$author', '$news_id', '$added_time')");
                                 
    $db->query('commit');
                                 
    $row['images'] = $inserts;
                              } else {
                                 
    $row $db->super_query("SELECT images  FROM " PREFIX "_images where author = '$author' AND news_id = '$news_id'");
                                 if (
    $row['images'] == ""$listimages = array();
                                 else 
    $listimages explode("|||"$row['images']);
                                 foreach (
    $listimages as $dataimages) {
                                    if (
    $dataimages == FOLDER_PREFIX."/".$file_prefix.$image_name$error_image "stop";
                                 }
                                 if (
    $error_image != "stop") {
                                    
    $listimages[] = FOLDER_PREFIX."/".$file_prefix.$image_name;
                                    
    $row['images'] = implode("|||"$listimages);
                                    
    $db->query("UPDATE " PREFIX "_images set images='{$row['images']}' where author = '$author' AND news_id = '$news_id'");
                                    
    $db->query('commit');
                                 }
                              }
                      }
                   require_once 
    ENGINE_DIR.'/inc/makethumb.php';
                       if (isset(
    $_REQUEST['make_thumb'])&&($_REQUEST['make_thumb'] !='' ))
                       {
                         
    $thumb=new thumbnail($config_path_image_upload.$file_prefix.$image_name);
                            if (
    $thumb->size_auto($config['max_image'], $_REQUEST['t_seite']))
                            {
                               
    $thumb->jpeg_quality($config['jpeg_quality']);
                               if (
    $config['allow_watermark'] == "yes" AND $_REQUEST['make_watermark'] == "yes"$thumb->insert_watermark($config['max_watermark']);
                               
    $thumb->save($config_path_image_upload."thumbs/".$file_prefix.$image_name);

                            }
                            @
    chmod ($config_path_image_upload."thumbs/".$file_prefix.$image_name0666);
                     }
                    
    $config['max_up_side'] = intval($config['max_up_side']);
                     if ((
    $config['allow_watermark'] == "yes" AND $_REQUEST['make_watermark'] == "yes") OR $config['max_up_side']) {
                        
    $thumb=new thumbnail($config_path_image_upload.$file_prefix.$image_name);
                        
    $thumb->jpeg_quality($config['jpeg_quality']);
                        if (
    $config['max_up_side'])
                            
    $thumb->size_auto($config['max_up_side']);
                        if (
    $config['allow_watermark'] == "yes" AND $_REQUEST['make_watermark'] == "yes")
                            
    $thumb->insert_watermark($config['max_watermark']);
                        
    $thumb->save($config_path_image_upload.$file_prefix.$image_name);
                     }

    // определение ссылки
    $config_path_image_upload ROOT_DIR."/uploads/";

        
    $dataimages FOLDER_PREFIX."/".$file_prefix.$image_name;
          
    $url_image explode("/"$dataimages);

          if (
    count($url_image) == 2) {

            
    $folder_prefix $url_image[0]."/";
            
    $dataimages $url_image[1];

          } else {

            
    $folder_prefix "";
            
    $dataimages $url_image[0];

          }


    if (
    file_exists($config_path_image_upload."posts/".$folder_prefix.$dataimages)) {

                  
    $img_info = @getimagesize($config_path_image_upload."posts/".$folder_prefix.$dataimages);


                     if (
    file_exists($config_path_image_upload."posts/".$folder_prefix."thumbs/".$dataimages)) {

                        
    $img_info_th = @getimagesize($config_path_image_upload."posts/".$folder_prefix."thumbs/".$dataimages);

                           if (!
    $wysiwyg)
                           {
                              
    $thumb_link="<a class=maintitle href=\"javascript:insertthumb('".$config['http_home_url']."uploads/posts/".$folder_prefix.$dataimages."','')\">$dataimages</a>";
                              
    $all_inserts "insertthumb('".$config['http_home_url']."uploads/posts/".$folder_prefix.$dataimages."','');";
                            }
                           else
                           {
                              
    $thumb_link="<a class=maintitle href=\"javascript:insertthumb('".$config['http_home_url']."uploads/posts/".$folder_prefix.$dataimages."', '".$config['http_home_url']."uploads/posts/".$folder_prefix."thumbs/".$dataimages."')\">$dataimages</a>";
                              
    $all_inserts "insertthumb('".$config['http_home_url']."uploads/posts/".$folder_prefix.$dataimages."', '".$config['http_home_url']."uploads/posts/".$folder_prefix."thumbs/".$dataimages."');";
                            }

                           
    $original_link="[ <a class=maintitle href=\"javascript:insertimage('".$config['http_home_url']."uploads/posts/".$folder_prefix.$dataimages."')\">".win2uni($lang['img_orig_ins'])."</a> ] ";

                     } else {

                        
    $thumb_link="<a class=maintitle href=\"javascript:insertimage('".$config['http_home_url']."uploads/posts/".$folder_prefix.$dataimages."')\">$dataimages</a>";
                        
    $all_inserts ="insertimage('".$config['http_home_url']."uploads/posts/".$folder_prefix.$dataimages."');";

                        
    $original_link="";

                     }
    header("Content-type: text/html; charset=windows-1251");
    echo
    "<tr>

          <td style=\"padding:2px;\">&nbsp;
    $thumb_link</td>
          <td width=150>
    {$original_link}[ <a class=maintitle href=\"javascript:ShowBild('"$config['http_home_url'] ."uploads/posts/".$folder_prefix.$dataimages."')\">".win2uni($lang['images_view'])."</a> ]</td>
          <td align=right width=60>
    $img_info[0]x$img_info[1]</td>
          <td align=right width=10><input type=checkbox name=images["
    .$folder_prefix.$dataimages."] value=\"".$folder_prefix.$dataimages."\"></td>
          </tr><tr><td background=\"engine/skins/images/mline.gif\" height=1 colspan=4></td></tr>"
    ;
        echo 
    "function_add_all_id $all_inserts";
               }
               else
               {
                       
    header("HTTP/1.1 500 Internal Server Error");
            echo 
    "invalid upload";
               }
    // ------------------------
                
    }
        else {
            
    header("HTTP/1.1 500 Internal Server Error");
            echo 
    "invalid upload";
            }
        exit(
    0);
    }
    else
    {
    header("Content-type: text/html; charset=windows-1251");
    echo 
    'No files sent. Script is OK!';
    exit(
    0);
    }
    }
    ?>
     
    Janine и kwin нравится это.
  4. dm_mb

    dm_mb

    Регистр.:
    6 июн 2006
    Сообщения:
    610
    Симпатии:
    122
    во вложении кинул архив. к сожалению не знаю версии.

    в архиве кодированный файл(sfw_upload_coded) и заменил стандартный на твой раскодированный.
     

    Вложения:

    Janine нравится это.
  5. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    А ты проверил работает ли... Я раскодировал походу первую версию, а хотелось бы вторую.
     
  6. dm_mb

    dm_mb

    Регистр.:
    6 июн 2006
    Сообщения:
    610
    Симпатии:
    122
    похоже я первую выложил. но то что ты раскодировал её - это тоже хорошо. хоть можно поставить на сайт..а то кто знает что там могло бы быть.

    на локалке тестировал - работало.
     
  7. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    Под хайд ссылку на скачивание поставь плиз.
     
  8. dm_mb

    dm_mb

    Регистр.:
    6 июн 2006
    Сообщения:
    610
    Симпатии:
    122
    если только админы помогут. я не понял как вложение под хайд спрятать.

    если объясните как - сделаю.
     
  9. GauraStyle

    GauraStyle Kot

    Регистр.:
    13 фев 2007
    Сообщения:
    1.493
    Симпатии:
    917
    Заливаеш на любой файлообменник и потом при добавлении новости есть в правом углу над смайлами HIDE нажимаеш и вписываеш сколько нужно человеку сообщений что бы он мог увидеть ссылку на скачивание. Ну цыфру придумываеш сам.
    ;)
     
  10. JC

    JC Бог пикселей

    Регистр.:
    4 янв 2008
    Сообщения:
    303
    Симпатии:
    401
    и между тегами HIDE кидаешь информацию которую хочешь скрыть
     
Статус темы:
Закрыта.