Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Как еще получить относительный путь к файлу

Страницы: 1  |  2
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
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
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

Все еще проще.
В условия добавления пишем:
$f_PictureMini['folder']="newfolder";
И картинка сохраняется в /netcat_files/newfolder/

Единственный нюанс (не смотрел еще, правда, последнюю версию) - это не поддерживаются вложенные директории. Обещали исправить, но наверно опять забыли подмигивает, хотя там одна строчка правится...

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
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
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

У-упс.. пардон, не досмотрел, у вас обрабатывается через nc_ImageTransform ...
Там путь для создания превью прописан жестко, т.е. он достает картинку из вашего newfolder а пихает в стандартную...
Если класс править не хотите, то вам скорее всего придется использовать свою функцию для создания превьюшки. Чтоб сильно не заморачиваться, можете попробовать просто скопировать класс, да добавить в метод дополнительный параметр.

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
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'].'/';

Попробую.
198 196 2011-04-17 20:56:00 11192
Страницы: 1  |  2
Описание проекта