Staf4 [danneo-]бложег

Вперёд собачко, вперёд!

Язык программирования самого высокого уровня содержит всего несколько команд – для управления программистами.

bugfix
Найденные ошибки, ваши предпочтения, пожелания, признания в любви и угрозы травмирования здоровья, пишем в форуме: http://forum.danneo.ru/
2012
06.18

Модификация загрузчика картинок

Удобная модификация прикрепления картинок в админке, на примере модуля новостей (стандартные способы выбора/загрузки изображений остаются).
Распространяется на выбор основного изображения с тумбочкой и на вложенные в текст изображения.
(извиняюсь за качество звука)))

Внимание! Изображения будут складываться в папку "up/{название-мода}/".
Внимание!!! Стандартный загрузчик после этого работать не будет!

ОБЩАЯ ИНСТРУКЦИЯ


самое главное, в папку "apanel\template\Lite\images\" положить картинку "sett.png":
скачиваем архив http://staf4.danneo.ru/up/article/file/mod-pic-loader.zip и файлы из него кладем в папку "apanel".
добавляем в бд следующее:
INSERT INTO `dn054_settings` (`setid`, `setopt`, `setname`, `setval`, `setmark`, `setlang`, `setcode`, `setvalid`) VALUES
('', 'fbrowser', 'fbrow_upl_img_sett_watermark', 'no', 0, '', '', ''),
('', 'fbrowser', 'fbrow_upl_img_sett_image_main_side', '480', 0, '', '', ''),
('', 'fbrowser', 'fbrow_upl_img_sett_image_thumb_side', '150', 0, '', '', '');

INSERT INTO `dn054_language` (`langid`, `langpackid`, `langsetid`, `langvars`, `langvals`, `langvalsold`, `langcache`) VALUES
('', 1, 1, 'file_upload_images_settings', 'Настройки загрузки изображений', 'Настройки загрузки изображений', 0),
('', 1, 1, 'long_side_image_main', 'Длинная сторона изображения', 'Длинная сторона изображения', 0),
('', 1, 1, 'long_side_image_thumb', 'Длинная сторона тумбочки', 'Длинная сторона тумбочки', 0),
('', 1, 1, 'file_upload_change', 'Загрузить / заменить файл', 'Загрузить / заменить файл', 0);
из файла "apanel\template\Lite\javascript\jquery.filebrowser.js" удаляем блок кода (модифицированный, он будет вынесен в другой файл):
jQuery.filebrowserimscreate = function(image_thumb,img){
    if (image_thumb.length > 0 && image_thumb.match(/\.(?:jpe?g|gif|png|bmp)/i)) {
                var id = $("#imgid").attr('value');
            if (id) {
               id++;
               var html = '<div id="imginput' + id + '" style="display:none;">';
               html+= '<table class="work" cellpadding="1" cellspacing="1"><tr><td class="work-lite center" valign="top">';
               html+= '<img src="../up' + image_thumb + '" width="70">';
               html+= '<p class="pad"><br /><input type="text" size="6" maxlength="7" value="" class="imgcount readonly" readonly="readonly">';
               html+= '</td><td class="work-clip" width="100%">';
               html+= '<fieldset class="standart"><legend>' + all_thumb + '</legend>';
               html+= '<input type="text" name="images[' + id + '][image_thumb]" size="15" maxlength="255" value="up' + image_thumb + '" class="readonly width" readonly="readonly">';
               html+= '</fieldset>';
               if (img.length > 0 && img.match(/\.(?:jpe?g|gif|png|bmp)/i)) {
                       html+= '<fieldset class="standart"><legend>' + all_img + '</legend>';
                       html+= '<input type="text" name="images[' + id + '][image]" size="15" maxlength="255" value="up' + img + '" class="readonly width" readonly="readonly">';
                       html+= '</fieldset>';
               }
               html+= '<fieldset class="standart"><legend>' + all_align + ', ' + all_alt + '</legend>';
               html+= '<select name="images[' + id + '][image_align]">';
               html+= '<option value="right">' + all_right + '</option>';
               html+= '<option value="left">' + all_left + '</option>';
               html+= '</select>';
               html+= '&nbsp;&nbsp;<input type="text" name="images[' + id + '][image_alt]" size="25" maxlength="255" value="">';
               html+= '</fieldset>';
               html+= '</td><td class="work-lite">';
               html+= '<a class="topnolink" href="javascript:$.filebrowserimsremove(\'' + id + '\');">x</a>';
               html+= '</td></tr></table>';
               html+= '</div><div class="clear"></div>';
               $("form[name=total-form] #image-area").append(html);
               $("form[name=total-form] #image-area #imginput" + id).show('normal');
               $("#imgid").attr({value:id});
               var c = 1;
               $("#image-area .imgcount").each(function(){
                   $("#image-area").addClass("image-area");
                   this.value = '{img' + c + '}'; c++;
               });
               jQuery.filebrowserclose();
            }
    }
}

jQuery.filebrowserimsremove = function(id){
    $("form[name=total-form] #image-area #imginput" + id).remove();
    var c = 1;
    $("#image-area .imgcount").each(function(){ this.value = '{img' + c + '}'; c++; });
    if (c == 1) $("#image-area").removeClass("image-area");
}
в файле "apanel\filebrowser.php", заменяем:
'personal','realpersonal');
на
'personal','realpersonal','addImageSett','addImageSettSave','addImageSave');
над строкой:
.'<a href="javascript:$.filebrowserparent(\'folder\',\'dn=newdir&ops='.$sess['hash'].(($ims) ? '&ims=1' : '').'\')"><img src="template/'.$sess['skin'].'/images/add.gif"></a>'
добавляем:
.'<a href="javascript:$.addImageSett(\''.$sess['hash'].'\')"><img src="template/'.$sess['skin'].'/images/sett.png"></a>&nbsp;'
и в самом конце, над комментарием:
/**
 * Права доступа
 */
вставляем:
/**
 * Настройки загрузки изображений
 */

if ($_REQUEST['dn'] == 'addImageSett') {
        echo '<script type="text/javascript">
                function addImageSettSave(url){
                        var contboxId = "contentBox";
                        $.ajax({
                                url: url,
                                type: "POST",
                                dataType: "html",
                                data: $(\'#formImageUploadSett\').serialize(),
                                beforeSend: function(){},
                                success: function(data){
                                        parent.$.colorbox.close();
                                }
                        });
                }
        </script>'
;
    echo '<form onSubmit="addImageSettSave(\'filebrowser.php?dn=addImageSettSave&ops='.$sess['hash'].'\'); return false;" method="post" id="formImageUploadSett">'
         .'<table width="100%" border="0" cellpadding="1" cellspacing="1" class="work">'
         .'<tr>'
         .'<td colspan="2" align="center" class="work-title alternative">'
         .$lang['file_upload_images_settings']
         .'</td>'
         .'</tr>'
         .'<tr>'
         .'<td width="50%" class="work-lite">'
         .$lang['watermark']
         .'</td>'
         .'<td align="center" width="50%" class="work-clip">'
         .'<input type="checkbox" name="watermark" value="yes" '.(($conf['fbrow_upl_img_sett_watermark'] == "yes") ? 'checked' : '').'>'
         .'</td>'
         .'</tr>'
         .'<tr>'
         .'<td class="work-lite">'
         .$lang['long_side_image_main']
         .'</td>'
         .'<td align="center" class="work-clip">'
         .'<select name="image_main_side">';
         for ($w = 300; $w <= 800; $w = ($w+20)) {
             echo '<option value="'.$w.'"'.(($conf['fbrow_upl_img_sett_image_main_side'] == $w) ? ' selected' : '').'>'.$w.' px</option>';
         }
    echo '</select>'
         .'</td>'
         .'</tr>'
         .'<tr>'
         .'<td class="work-lite">'
         .$lang['long_side_image_thumb']
         .'</td>'
         .'<td align="center" class="work-clip">'
         .'<select name="image_thumb_side">';
         for ($w = 70; $w <= 300; $w = ($w+10)) {
             echo '<option value="'.$w.'"'.(($conf['fbrow_upl_img_sett_image_thumb_side'] == $w) ? ' selected' : '').'>'.$w.' px</option>';
         }
    echo '</select>'
         .'</td>'
         .'</tr>'
         .'<tr>'
         .'<td colspan="2" class="work-button center">'
         .'<input id="submit" type="submit" class="button" value=" '.$lang['all_save'].' ">'
         .'</td>'
         .'</tr>'
         .'</table>'
         .'</form>';
}

/**
 * Сохранение настроек загрузки изображений
 */

if ($_REQUEST['dn'] == 'addImageSettSave') {
        $db->query("UPDATE ".$basepref."_settings SET setval = '".$db->escape((isset($watermark) && $watermark == "yes") ? "yes" : "no")."' WHERE setname='fbrow_upl_img_sett_watermark'");
        $db->query("UPDATE ".$basepref."_settings SET setval = '".$db->escape($image_main_side)."' WHERE setname='fbrow_upl_img_sett_image_main_side'");
        $db->query("UPDATE ".$basepref."_settings SET setval = '".$db->escape($image_thumb_side)."' WHERE setname='fbrow_upl_img_sett_image_thumb_side'");
}

/**
 * Загрузка основного изображения и тумбочки
 */

if ($_REQUEST['dn'] == 'addImageSave') {
        $result = "";
        $resultJson = array();
        $objdir = $_GET['dir'];
        $sideMain = intval($conf['fbrow_upl_img_sett_image_main_side']);
        $sideThumb = intval($conf['fbrow_upl_img_sett_image_thumb_side']);
        #
        require_once('system/apanel.image.php');
        $image = new image();
        if (isset($_FILES['file']) && !empty($_FILES['file']['name']) && preg_match("/.gif$|.jpg$|.jpeg$|.png$|.bmp$/i", $_FILES['file']['name'])){
                $imginfo = @getimagesize($_FILES['file']['tmp_name']);
                $imgarray = array('image/gif','image/jpg','image/jpeg','image/png','image/bmp');
                # проверка размеров и типа файла
                if (isset($imginfo[0]) && $imginfo[0] > 0 && isset($imginfo[1]) && $imginfo[1] > 0 && isset($imginfo['mime']) && in_array($imginfo['mime'],$imgarray)) {
                        $fi = pathinfo($_FILES['file']['name']);
                        $filename = GenRandom().".".strtolower($fi['extension']);
                        $tmpname = $_FILES['file']['tmp_name'];
                        # если такой файл присутствует, изменяем имя
                        if (file_exists(WORKDIR.'up'.$objdir.$filename)) { $filename = GenRandom('sn',6).$filename; }
                        if (@move_uploaded_file($tmpname,WORKDIR.'up'.$objdir.$filename)) {
                                # создаем основное изображение
                                $image->start();
                                $image->createthumb(
                                        WORKDIR.'up'.$objdir.$filename,
                                        WORKDIR.'up'.$objdir, $filename,
                                        $sideMain, $sideMain, "yes");
                                # создаем тумбочку
                                $image->start();
                                $image->createthumb(
                                        WORKDIR.'up'.$objdir.$filename,
                                        WORKDIR.'up'.$objdir, 'thumb_'.$filename,
                                        $sideThumb, $sideThumb, "yes");
                                if ($conf['fbrow_upl_img_sett_watermark'] == "yes" && $conf['waterpatch']) {
                                        $image->start();
                                        $image->createwater(WORKDIR.'up'.$objdir.$filename,WORKDIR.$conf['waterpatch']);
                                }
                                $result = PrintImageBoxMT($objdir, 'up'.$objdir.'thumb_'.$filename, 'up'.$objdir.$filename);
                                $resultJson['error'] = "0";
                                $resultJson['thumb'] = $objdir.'thumb_'.$filename;
                                $resultJson['img'] = $objdir.$filename;
                        } else {
                                $result = PrintImageBoxMT($objdir, "", "", "Ошибка при перемещении файла (error#3)");
                                $resultJson['error'] = "Ошибка при перемещении файла (error#3)";
                                $resultJson['thumb'] = "";
                                $resultJson['img'] = "";
                        }
                } else {
                        $result = PrintImageBoxMT($objdir, "", "", "Данный формат файлов не поддерживается (error#2)");
                        $resultJson['error'] = "Данный формат файлов не поддерживается (error#2)";
                        $resultJson['thumb'] = "";
                        $resultJson['img'] = "";
                }
        } else {
                $result = PrintImageBoxMT($objdir, "", "", "Данный формат файлов не поддерживается (error#1)");
                $resultJson['error'] = "Данный формат файлов не поддерживается (error#1)";
                $resultJson['thumb'] = "";
                $resultJson['img'] = "";
        }
        if(isset($_GET['type']) && $_GET['type']=="json"){
                print '{';
                foreach ($resultJson as $k => $v) { print '"'.$k.'" : "'.$v.'",'; }
                print '"empty" : ""}';
        }else{
                print $result;
        }
}
в файл "apanel\init.php" перед строкой:
require_once(ADMINDIR.'/system/apanel.function.php');
добавляем:
require_once(ADMINDIR.'/system/apanel.function.modpicloader.php');
в файле "apanel\template\Lite\apanel.template.php", после строки:
            .'<script type="text/javascript" src="template/' . $sess['skin'] . '/javascript/jquery.filebrowser.js"></script>'
добавляем строку:
            .'<script type="text/javascript" src="template/' . $sess['skin'] . '/javascript/jquery.filebrowser.modpicloader.js"></script>'

ИНСТРУКЦИЯ ДЛЯ НОВОСТЕЙ


в файле "apanel\news.php", строки:
        .'<tr><td class="work-title center" colspan="2">'.$lang['img_hint'].'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
         .$lang['all_image_thumb']
         .' :</td>'
         .'<td class="work-lite" width="80%">'
         .'<input name="image_thumb" id="image_thumb" size="40" maxlength="255" type="text" value="'.$image_thumb.'">'
         .' <input class="button" onclick="javascript:$.filebrowser(\''.$sess['hash'].'\',\'/news/article/\',\'&field[1]=image_thumb&field[2]=image&field[3]=video\')" value=" '.$lang['adm_f_browser'].' " type="button">'
         .'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
         .$lang['all_image']
         .' :</td>'
         .'<td class="work-lite" width="80%">'
         .'<input name="image" id="image" size="40" maxlength="255" type="text" value="'.$image.'">'
         .' <input class="button" onclick="javascript:$.filebrowser(\''.$sess['hash'].'\',\'/news/article/\',\'&field[1]=image&field[2]=image_thumb&field[3]=video\')" value=" '.$lang['adm_f_browser'].' " type="button">'
         .'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
заменяем на:
        .'<tr><td class="work-title center" colspan="2">'.$lang['img_hint'].'</td></tr>';
                PrintImageBoxMTDialog(PERMISS.'/article');
    echo '<tr><td class="work-clip strong center" width="20%">'
и два вхождения блока кода:
        .'<tr><td class="work-title center" colspan="2">'.$lang['img_hint'].'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
         .$lang['all_image_thumb']
         .' :</td>'
         .'<td class="work-lite" width="80%">'
         .'<input name="image_thumb" id="image_thumb" size="40" maxlength="255" type="text" value="'.$item['image_thumb'].'">'
         .' <input class="button" onclick="javascript:$.filebrowser(\''.$sess['hash'].'\',\'/news/article/\',\'&field[1]=image_thumb&field[2]=image&field[3]=video\')" value=" '.$lang['adm_f_browser'].' " type="button">'
         .'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
         .$lang['all_image']
         .' :</td>'
         .'<td class="work-lite" width="80%">'
         .'<input name="image" id="image" size="40" maxlength="255" type="text" value="'.$item['image'].'">'
         .' <input class="button" onclick="javascript:$.filebrowser(\''.$sess['hash'].'\',\'/news/article/\',\'&field[1]=image&field[2]=image_thumb&field[3]=video\')" value=" '.$lang['adm_f_browser'].' " type="button">'
         .'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
заменить на:
        .'<tr><td class="work-title center" colspan="2">'.$lang['img_hint'].'</td></tr>';
                PrintImageBoxMTDialog(PERMISS.'/article', $item['image_thumb'], $item['image']);
    echo '<tr><td class="work-clip strong center" width="20%">'
два вхождения строк (при поиске по первой строке - первое и третье вхождения):
        .'<a class="topnolink" href="javascript:javascript:$.personalupload(\''.$sess['hash'].'&objdir=/news/\');">'.$lang['file_upload'].'</a>'
         .'<div class="clear"></div><div id="image-area"></div>'
         .'</td></tr>';
заменить на:
        .'<a class="topnolink" href="javascript:javascript:$.personalupload(\''.$sess['hash'].'&objdir=/news/\');">'.$lang['file_upload'].'</a>';
    PrintImageBoxContDialog(PERMISS.'/article');
    PrintImageBoxCont(PERMISS.'/article');
    echo '</td></tr>';
блок кода:
        .'<a class="topnolink" href="javascript:javascript:$.personalupload(\''.$sess['hash'].'&objdir=/news/\');">'.$lang['file_upload'].'</a>'
         .'<div class="clear"></div><div id="image-area"'.$class.'>';
    $ic = 0;
    if (is_array($img)) {
        foreach ($img as $k => $v) {
            $ic++;
            echo '<div id="imginput'.$ic.'" style="display:block;">'
                 .'<table class="work" cellpadding="1" cellspacing="1">'
                 .'<tr>'
                 .'<td class="work-lite center" valign="top">'
                 .'<img src="../'.$v['thumb'].'" width="70">'
                 .'<p class="pad"><br /><input type="text" size="6" maxlength="7" value="{img'.$ic.'}" class="imgcount readonly" readonly="readonly">'
                 .'</td>'
                 .'<td class="work-clip" width="100%">'
                 .'<fieldset class="standart"><legend>'.$lang['all_image'].'</legend>'
                 .'<input type="text" name="images['.$ic.'][image_thumb]" size="15" maxlength="255" value="'.$v['thumb'].'" class="readonly width" readonly="readonly">'
                 .'</fieldset>';
            if (!empty($v['image'])) {
                echo '<fieldset class="standart"><legend>'.$lang['all_image_big'].'</legend>'
                     .'<input type="text" name="images['.$ic.'][image]" size="15" maxlength="255" value="'.$v['image'].'" class="readonly width" readonly="readonly">'
                     .'</fieldset>';
            }
            echo '<fieldset class="standart"><legend>'.$lang['all_align_image'].', '.$lang['all_alt_image'].'</legend>'
                 .'<select name="images['.$ic.'][image_align]">'
                 .'<option value="right"'.(($v['align'] == 'right') ? ' selected' : '').'>'.$lang['all_right'].'</option>'
                 .'<option value="left"'.(($v['align'] == 'left') ? ' selected' : '').'>'.$lang['all_left'].'</option>'
                 .'</select>'
                 .'&nbsp;&nbsp;<input type="text" name="images['.$ic.'][image_alt]" size="25" maxlength="255" value="'.$v['alt'].'">'
                 .'</fieldset>'
                 .'</td>'
                 .'<td class="work-lite">'
                 .'<a class="topnolink" href="javascript:$.filebrowserimsremove(\''.$ic.'\');">x</a>'
                 .'</td>'
                 .'</tr>'
                 .'</table>'
                 .'</div>';
        }
    }
    echo '</div>'
         .'</td></tr>';
заменить на:
        .'<a class="topnolink" href="javascript:javascript:$.personalupload(\''.$sess['hash'].'&objdir=/news/\');">'.$lang['file_upload'].'</a>';
    PrintImageBoxContDialog(PERMISS.'/article');
    PrintImageBoxCont(PERMISS.'/article', $item['images']);
    echo '</td></tr>';
и удалить строку:
        .'<input type="hidden" id="imgid" value="'.$ic.'">'

ИНСТРУКЦИЯ ДЛЯ СТАТЕЙ


в файле "apanel\article.php": строки:
        .'<tr><td class="work-title center" colspan="2">'.$lang['img_hint'].'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
         .$lang['all_image_thumb']
         .' :</td>'
         .'<td class="work-lite" width="80%">'
         .'<input name="image_thumb" id="image_thumb" size="40" maxlength="255" type="text" value="">'
         .' <input class="button" onclick="javascript:$.filebrowser(\''.$sess['hash'].'\',\'/article/img/\',\'&field[1]=image_thumb&field[2]=image\')" value=" '.$lang['adm_f_browser'].' " type="button">'
         .'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
         .$lang['all_image']
         .' :</td>'
         .'<td class="work-lite" width="80%">'
         .'<input name="image" id="image" size="40" maxlength="255" type="text" value="">'
         .' <input class="button" onclick="javascript:$.filebrowser(\''.$sess['hash'].'\',\'/article/img/\',\'&field[1]=image&field[2]=image_thumb\')" value=" '.$lang['adm_f_browser'].' " type="button">'
         .'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
заменяем на:
        .'<tr><td class="work-title center" colspan="2">'.$lang['img_hint'].'</td></tr>';
         PrintImageBoxMTDialog(PERMISS.'/img');
         echo '<tr><td class="work-clip strong center" width="20%">'
и строки:
        .'<tr><td class="work-title center" colspan="2">'.$lang['img_hint'].'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
         .$lang['all_image_thumb']
         .' :</td>'
         .'<td class="work-lite" width="80%">'
         .'<input name="image_thumb" id="image_thumb" size="40" maxlength="255" type="text" value="'.$item['image_thumb'].'">'
         .' <input class="button" onclick="javascript:$.filebrowser(\''.$sess['hash'].'\',\'/article/img/\',\'&field[1]=image_thumb&field[2]=image\')" value=" '.$lang['adm_f_browser'].' " type="button">'
         .'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
         .$lang['all_image']
         .' :</td>'
         .'<td class="work-lite" width="80%">'
         .'<input name="image" id="image" size="40" maxlength="255" type="text" value="'.$item['image'].'">'
         .' <input class="button" onclick="javascript:$.filebrowser(\''.$sess['hash'].'\',\'/article/img/\',\'&field[1]=image&field[2]=image_thumb\')" value=" '.$lang['adm_f_browser'].' " type="button">'
         .'</td></tr>'
         .'<tr><td class="work-clip strong center" width="20%">'
заменить на:
        .'<tr><td class="work-title center" colspan="2">'.$lang['img_hint'].'</td></tr>';
         PrintImageBoxMTDialog(PERMISS.'/img', $item['image_thumb'], $item['image']);
         echo '<tr><td class="work-clip strong center" width="20%">'
строки:
        .'<a class="topnolink" href="javascript:javascript:$.personalupload(\''.$sess['hash'].'&objdir=/article/\');">'.$lang['file_upload'].'</a>'
         .'<div class="clear"></div><div id="image-area"></div>'
         .'</td></tr>';
заменить на:
        .'<a class="topnolink" href="javascript:javascript:$.personalupload(\''.$sess['hash'].'&objdir=/article/\');">'.$lang['file_upload'].'</a>';
    PrintImageBoxContDialog(PERMISS.'/img');
    PrintImageBoxCont(PERMISS.'/img');
    echo '</td></tr>';
и строки:
        .'<a class="topnolink" href="javascript:javascript:$.personalupload(\''.$sess['hash'].'&objdir=/article/\');">'.$lang['file_upload'].'</a>'
         .'<div class="clear"></div><div id="image-area"'.$class.'>';
    $ic = 0;
    if (is_array($img)) {
        foreach ($img as $k => $v) {
            $ic++;
            echo '<div id="imginput'.$ic.'" style="display:block;">'
                 .'<table class="work" cellpadding="1" cellspacing="1">'
                 .'<tr>'
                 .'<td class="work-lite center" valign="top">'
                 .'<img src="../'.$v['thumb'].'" width="70">'
                 .'<p class="pad"><br /><input type="text" size="6" maxlength="7" value="{img'.$ic.'}" class="imgcount readonly" readonly="readonly">'
                 .'</td>'
                 .'<td class="work-clip" width="100%">'
                 .'<fieldset class="standart"><legend>'.$lang['all_image'].'</legend>'
                 .'<input type="text" name="images['.$ic.'][image_thumb]" size="15" maxlength="255" value="'.$v['thumb'].'" class="readonly width" readonly="readonly">'
                 .'</fieldset>';
            if (!empty($v['image'])) {
                echo '<fieldset class="standart"><legend>'.$lang['all_image_big'].'</legend>'
                     .'<input type="text" name="images['.$ic.'][image]" size="15" maxlength="255" value="'.$v['image'].'" class="readonly width" readonly="readonly">'
                     .'</fieldset>';
            }
            echo '<fieldset class="standart"><legend>'.$lang['all_align_image'].', '.$lang['all_alt_image'].'</legend>'
                 .'<select name="images['.$ic.'][image_align]">'
                 .'<option value="right"'.(($v['align'] == 'right') ? ' selected' : '').'>'.$lang['all_right'].'</option>'
                 .'<option value="left"'.(($v['align'] == 'left') ? ' selected' : '').'>'.$lang['all_left'].'</option>'
                 .'</select>'
                 .'&nbsp;&nbsp;<input type="text" name="images['.$ic.'][image_alt]" size="25" maxlength="255" value="'.$v['alt'].'">'
                 .'</fieldset>'
                 .'</td>'
                 .'<td class="work-lite">'
                 .'<a class="topnolink" href="javascript:$.filebrowserimsremove(\''.$ic.'\');">x</a>'
                 .'</td>'
                 .'</tr>'
                 .'</table>'
                 .'</div>';
        }
    }
    echo '</div>'
         .'</td></tr>';
заменить на:
        .'<a class="topnolink" href="javascript:javascript:$.personalupload(\''.$sess['hash'].'&objdir=/article/\');">'.$lang['file_upload'].'</a>';
    PrintImageBoxContDialog(PERMISS.'/img');
    PrintImageBoxCont(PERMISS.'/img', $item['images']);
    echo '</td></tr>';
строки:
   echo '<tr><td class="work-button center" colspan="2">'
         .'<input type="hidden" name="ops" value="'.$sess['hash'].'">'
         .'<input type="hidden" id="imgid" value="'.$ic.'">';
заменить на:
   echo '<tr><td class="work-button center" colspan="2">'
         .'<input type="hidden" name="ops" value="'.$sess['hash'].'">';


ПРИМЕЧАНИЯ

2012.06.19 - список прикрепленных картинок теперь растягивается по высоте, в зависимости от кол-ва картинок и добавлено ПЕРЕТАСКИВАНИЕ картинок (смена их порядка).
Все изменения происходили в верхней части статьи, не затрагивая интеграцию в модули. В БД ничего не добавлялось, изменялись файлы "jquery.filebrowser.js", "filebrowser.php", "apanel.template.php" и "init.php". Основной функционал из "apanel.function.php" вынесен в файл "apanel.function.modpicloader.php". Убраны изменения в "jquery.apanel.js" (вынесены в другой файл).

2011.11.11 - исправлена ошибка загрузки не jpg-файлов; исправлена работа с папками (раньше в любом случае все помещалось в папку новостей).

2011.12.04 - добавлено открытие картинки в колорбоксе, при клике на тумбочку.

2011.12.14 - исправлена интеграция в статьи.
Опубликовано: 18.06.12 / Просмотров: 8304 / +   -   / Печать
© 2020 Все права блюду