Загрузка картинок на сайт как опция

Данная функция даёт вам возможность, как администратору сайта отключить или включить загрузку картинок на сайт
1. в файл config.php добавляем строку
define('USER_USE_UPLOAD_IMG',false); // режим загрузки картинок на хостинг сайта

2. classes/modules/sys_viewer/Viewer.class.php
над или под строкой
$this->Assign("BLOG_USE_TINYMCE",BLOG_USE_TINYMCE);

вписываем:
$this->Assign("USER_USE_UPLOAD_IMG",USER_USE_UPLOAD_IMG);

3. include/ajax/uploadImg.php
после строки:
require_once("./config/config.ajax.php");

вписываем:
if (USER_USE_UPLOAD_IMG == true) {

далее в самом низу в этом же файле после кода:
$GLOBALS['_RESULT'] = array(
"bStateError"     => $bStateError,
"sText"   => $sText,
);

вписываем:
}
else{
print "ку ку";
}

4. actions/ActionTopic/add.tpl
находим код:
{include file='window_load_img.tpl' sToLoad='topic_text'}

вставляем его между:
{if $USER_USE_UPLOAD_IMG} 
{include file='window_load_img.tpl' sToLoad='topic_text'} 
{/if}

ну и находим полный код кнопки «картинки» и делаем с ней тоже самое

пс… main.js вот незнаю надо оно или нет, старый код заменим этим:
if (USER_USE_UPLOAD_IMG == true) {
function ajaxUploadImg(value,sToLoad) {    
    var req = new JsHttpRequest();    
    req.onreadystatechange = function() {
        if (req.readyState == 4) {         
            document.getElementById('debug').innerHTML = req.responseText;  
            closeWindowStatus();         
            if (req.responseJS.bStateError) {
            	msgErrorBox.alert('Ошибка','Возникли проблемы при загрузке изображения, попробуйте еще разок. И на всякий случай проверьте правильность URL картинки');
            	showWindow('window_load_img');
            } else {   
            	voidPutTag(sToLoad,req.responseJS.sText);            	
            }
        }
    }    
    closeWindow('window_load_img');
    showWindowStatus('Загрузка изображения...');
    req.open(null, DIR_WEB_ROOT+'/include/ajax/uploadImg.php', true);    
    req.send( { value: value } );
}
} else {

}

4 комментария

avatar

допысывать в main.js if (USER_USE_UPLOAD_IMG == true) { не ообязательно, да и к тому же USER_USE_UPLOAD_IMG в скрипте не определена!
и ещё думаю следует заменить в actions/ActionTopic/add.tpl <a href="#" onclick="showWindow('window_load_img'); return false;" class="button"><img src="{$DIR_STATIC_SKIN}/img/img.gif" width="20" height="20" title="изображение"></a> на {if $USER_USE_UPLOAD_IMG}
                                <a href="#" onclick="showWindow('window_load_img'); return false;" class="button"><img src="{$DIR_STATIC_SKIN}/img/img.gif" width="20" height="20" title="изображение"></a>
{/if}   чтоб не нервировать каждый раз пользователя ошибками при попытке загрузить картинку…
avatar
Судя по всему это написано еще для старой версии движка.
В последней 0.4.2 в classes/modules нет папки sys_viewer
avatar
… пардон, рано отправил.
В последней же версии (0.4.2), решается данный вопрос еще более просто, я бы сказал элементарно:
нужно в папке со скином/темой открыть файл
window_load_img.tpl
и там можно просто убрать 7-ю строку
<p><label for="img_file">{$aLang.uploadimg_file}:</label><br /><input type="file" name="img_file" value="" class="w100p" /></p>

Таким образом остается только возможность подставить URL загруженной куда-то картинки.

P.S. перед тем как отправить это сообщение, попробовал у себя на тестовой площадке, оказывается если подставить только ссылку, изображение всеравно загружается на сервер сайта :)
Покопаемся еще немного…
avatar
Надо в файле include/ajax/uploadImg.php закомментировать строки:
$oUserCurrent=$oEngine->User_GetUserCurrent();
if (is_uploaded_file($_FILES['img_file']['tmp_name'])) {
   if(!$sFile=$oEngine->Topic_UploadTopicImageFile($_FILES['img_file'],$oUserCurrent)) {
	$sMsgTitle=$oEngine->Lang_Get('error');
	$sMsg=$oEngine->Lang_Get('uploadimg_file_error');
   }
}
… и ниже в if, строку:
$sFile = $oEngine->Topic_UploadTopicImageUrl($_REQUEST['img_url'],$oUserCurrent);
заменить на:
$sFile= $_REQUEST['img_url'];

Вот и все =) остается только дописать пару строчек для пропорционального изменения размеров загружаемой картинки, напр. чтобы она была максимум 500px по ширине
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.