|
|
15.04.2011, 22:07
|
|
Гость
Гость
|
Относительный путь к загруженной картинке получаем так:
$DOCUMENT_ROOT.nc_file_path($classID, $message, 'Picture', "")
Как его еще можно получить, без функции nc_file_path?
При смене директории для загрузки картинки (условии добавления)
Код:$f_Picture['folder'] = 'Image/foto';
и создании ее превьюшки (в действии после добавления)
Код:require_once($INCLUDE_FOLDER."classes/nc_imagetransform.class.php");
$photo_path = $DOCUMENT_ROOT.nc_file_path($classID, $message, 'Picture', "");
nc_ImageTransform::createThumb('Picture','PictureMini',50,50,1);
оригинал картинки сохраняется в новую директорию, а превьюшка в директорию ".../раздел/компонент/...", т.е. в стандартную.
Поэтому и вопрос возник.
|
|
|
15.04.2011, 22:09
|
|
Гость
Гость
|
Какие вообще варианты, чтобы исправить эту проблему?
|
|
|
15.04.2011, 23:05
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Ваша новая директория никак не относится к штатным видам файловых систем, поэтому и требовать подобных вещей от штатного API смысла нет.
Надо самому фантазировать. Как вариант - это создать доп. поле типа строка и туда записывать нужный вам путь. Соотв-но самому придется обрабатывать такие события как - изменение, удаление файла.
Temet nosce...
|
|
|
16.04.2011, 11:56
|
|
Гость
Гость
|
За выбор директоии для сохранения превьюшки, как я понял отвечает classes/nc_imagetransform.class.php
То есть, чтобы поменять директорию для ее сохранения, я должен имзенить nc_imagetransform.class.php. чтобы в нем явно указать либо путь на диске, либо поле в таблице с этим путем?
Это значит отказаться от поддержки.
Или полностью писать и подключать свой imagetransform?
Или все-таки можно как-то не меняя систему перенаправить в свою директорию при создании превьюшки?
|
|
|
16.04.2011, 12:06
|
|
Гость
Гость
|
продолжение
В таблице есть поле PictureMini (для превьюшки), в нем такая запись образуется при ее создании
image_thumb.jpg:jpg:1575:157/183/image_thumb.jpg
Всего лишь:
1. Нужно направить при записи на диск превью в свою директорию.
2. Нужно, может быть в действии после добавления/изменения, изменить последнюю часть - 157/183/image_thumb.jpg (на свой путь до файла)
Все как-бы просто, но не знаю какие переменные, чтобы я уже своими действиями назначил им какие-надо значения (в действии после добавления объекта).
|
|
|
16.04.2011, 12:56
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Все еще проще.
В условия добавления пишем:
$f_PictureMini['folder']="newfolder";
И картинка сохраняется в /netcat_files/newfolder/
Единственный нюанс (не смотрел еще, правда, последнюю версию) - это не поддерживаются вложенные директории. Обещали исправить, но наверно опять забыли , хотя там одна строчка правится...
|
|
|
16.04.2011, 13:19
|
|
Гость
Гость
|
Это
$f_PictureMini['folder']="newfolder";
в действии после добавления/изменения вставлять до кода создания превью (выше его приводил) или после?
Что-то подозрительно просто.
Если "до", то класс как эту директорию получит, если "после", то уже привьюшка создалась и теряется смысл.
|
|
|
16.04.2011, 18:50
|
|
Гость
Гость
|
В папке netcat_files создал подпапку newfolder
В условия добавления объекта в самом начале вписал
$f_Picture['folder']="newfolder";
и также
$f_PictureMini['folder']="newfolder";
В итоге оригинал картинки Picture записывается в новую /netcat_files/newfolder/, а превьюшка PictureMini в стандартную /netcat_files/ID_раздела/ID_компонента/
Asiat, не сработало.
Как же заставить, чтобы сработало, не вмешиваясь в класс?
|
|
|
17.04.2011, 07:09
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
У-упс.. пардон, не досмотрел, у вас обрабатывается через nc_ImageTransform ...
Там путь для создания превью прописан жестко, т.е. он достает картинку из вашего newfolder а пихает в стандартную...
Если класс править не хотите, то вам скорее всего придется использовать свою функцию для создания превьюшки. Чтоб сильно не заморачиваться, можете попробовать просто скопировать класс, да добавить в метод дополнительный параметр.
|
|
|
17.04.2011, 11:50
|
|
Гость
Гость
|
В методах я не силен.
Посмотрел класс, там много чего править нужно и запись на диск и удаление, при удалении оригинала и замену при замене оригинала и с таблицами тоже.
Хорошо бы, если неткатовцы не прописывали жестко. А то вся система вроде как привязана к API, а тут такое. Можно же было им написать в классе проверку на наличие типа $f_Picture['folder']="newfolder" и если не задано, то стандартно сохранять привьюшку.
|
|
|
17.04.2011, 12:01
|
|
Гость
Гость
|
Нашел в классе такую строчку
Код:$path_dsc = $message_field['Subdivision_ID'].'/'.$message_field['Sub_Class_ID'].'/';
Может достаточно ее поменять на
Код:$path_dsc = $f_PictureMini['folder'].'/';
Попробую.
|