вопрос
Есть хак для загрузки изображений через доп поля работающий на 10.1 :
Может кто поправить до рабочего состояния для 10.6?
Спасибо!
Установка хака:
1. Создаем дополнительное поле для новостей:
2. В файлах engine/inc/editnews.php, engine/inc/addnews.php, engine/modules/addnews.php
Найти:
3. Открываем файл engine/inc/xfields.php Найти:
4. В папке вашего шаблона, в файле addnews.tpl
Для того чтобы изменить дизайн по своему вкусу за пределами тега {xfields}, смотрите структуру вывода поля добавления картинок.
Пример стандартного вывода:
1. Создаем дополнительное поле для новостей:
- Название поля: обязательно должно начинаться с imgfield_ВАШЕНАЗВАНИЕ
- Тип: Одна строка
2. В файлах engine/inc/editnews.php, engine/inc/addnews.php, engine/modules/addnews.php
Найти:
<formЗаменить на:
<form enctype=\"multipart/form-data\"
3. Открываем файл engine/inc/xfields.php Найти:
elseif ($value[3] == "text") {Ниже вставить:
$fieldvalue = str_replace('"', '"', $fieldvalue);
$fieldvalue = str_replace('&', '&', $fieldvalue);
if (!$value[5]) {
$params = "rel=\"essential\" ";
$uid = "uid=\"essential\" ";
} else {
$params = "";
$uid = "";
}
if(stripos($fieldname, 'imgfield_') !== false) {Ниже по коду найти:
$imgfile = ' <label for="imgfieldfile_'.$fieldname.'"><img title="Загрузка изображений на сервер" src="engine/skins/images/folder_open.png" border="0" style="cursor:pointer;"></label><input type="file" name="imgfieldfile_'.$fieldname.'" id="imgfieldfile_'.$fieldname.'" style="display: none;"/>';
} else { $imgfile=''; }
} elseif ( $postedxfields[$value[0]] != "" ) {Заменить на:
//Проверка если поле урлом
} elseif ( $postedxfields[$value[0]] != "" AND stripos($value[0], 'imgfield_') !== false AND !$_POST['imgfieldfile_'.$value[0]] ) {
//Проверка если картинка уже загружена
if(stripos($postedxfields[$value[0]], $config['http_home_url']) !== false) {
$newpostedxfields[$value[0]] = $postedxfields[$value[0]];
} else {
define( 'FOLDER_PREFIX', date( "Y-m" ) );
if( ! is_dir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX ) ) {
@mkdir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );
@chmod( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );
}
$config_path_image_upload = ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX . "/";
$allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );
$file_prefix = time() + rand( 1, 100 );
$image_mime = getimagesize($postedxfields[$value[0]]);
$mime = $image_mime['mime'];
$type = substr(strrchr($mime, '/'), 1);
if ( in_array( strtolower( $type ), $allowed_extensions) ) {
copy($postedxfields[$value[0]], $config_path_image_upload.$file_prefix.'.'.$type);
$image_name = $file_prefix . '.'.$type;
if( @file_exists( $config_path_image_upload . $image_name ) ) {
$newpostedxfields[$value[0]] = $config['http_home_url'] . "uploads/posts/" . FOLDER_PREFIX . "/" . $image_name;
}
}
}
//Проверка если выбрали картинку для загрузки
} elseif (isset($_FILES['imgfieldfile_'.$value[0]]) && $_FILES['imgfieldfile_'.$value[0]] !='') {
define( 'FOLDER_PREFIX', date( "Y-m" ) );
if( ! is_dir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX ) ) {
@mkdir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );
@chmod( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );
}
$file_prefix = time() + rand( 1, 100 ) . "_";
$allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );
$config_path_image_upload = ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX . "/";
$image = $_FILES['imgfieldfile_'.$value[0]]['tmp_name'];
$image_name = $_FILES['imgfieldfile_'.$value[0]]['name'];
$image_name_arr = explode( ".", $image_name );
$type = totranslit( end( $image_name_arr ) );
if ( in_array( strtolower( $type ), $allowed_extensions) ) {
@move_uploaded_file( $image, $config_path_image_upload . $file_prefix . $image_name );
if( @file_exists( $config_path_image_upload . $file_prefix . $image_name ) ) {
$newpostedxfields[$value[0]] = $config['http_home_url'] . "uploads/posts/" . FOLDER_PREFIX . "/" . $file_prefix . $image_name;
}
}
} elseif ( $postedxfields[$value[0]] != "" AND stripos($value[0], 'imgfield_') === false AND !$_POST['imgfieldfile_'.$value[0]] ) {
4. В папке вашего шаблона, в файле addnews.tpl
Для того чтобы изменить дизайн по своему вкусу за пределами тега {xfields}, смотрите структуру вывода поля добавления картинок.
Пример стандартного вывода:
5. Всё :) Установка завершена.
<tr id="xfield_holder_imgfield_zagruzka">
<td class="addnews">Загрузка файлом:</td>
<td class="xfields" colspan="2">
<input type="text" name="xfield[imgfield_zagruzka]" id="xfield[imgfield_zagruzka]" value="">
<label for="imgfieldfile_imgfield_zagruzka"><img title="Загрузка картинок на сервер" src="engine/skins/images/folder_open.png" border="0" style="cursor:pointer;"></label>
<input type="file" name="imgfieldfile_imgfield_zagruzka" id="imgfieldfile_imgfield_zagruzka" style="display: none;">
(необязательно)</td>
</tr>
Может кто поправить до рабочего состояния для 10.6?
Спасибо!