Регистрация
Вход через соцсети
Восстановление пароля

Получить путь к файлу

Новый топик
18.06.2014, 17:56
Ответить | Цитировать
alexandr
Осипов Александр

Зарегистрирован:
2012-08-28
Сообщений: 13

У меня есть составной компонент, куда сливаются данные из нескольких похожих таблиц (не агрегатор). При выводе картинок, $f_картинка выдает содержимое поля, а не путь. Поскольку данные берутся из нескольких таблиц, nc_file_path тоже не катит (или я ошибаюсь?). Как, не прибегая к колхозу типа регекспов, получить путь из поля картинки?
18.06.2014, 18:23
Ответить | Цитировать
okn.name
Константин Орленко
okn.name

Зарегистрирован:
2010-07-20
Сообщений: 208

а $f_картинка_url что выдаёт?

18.06.2014, 19:38
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Изучите функцию explode()

Пример
<? $array_img = explode(":",$f_картинка); ?>
<img src='<?=$array_img[3]?>' alt='<?=$array_img[0]?>'>

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
18.06.2014, 19:40
Ответить | Цитировать
alexandr
Осипов Александр

Зарегистрирован:
2012-08-28
Сообщений: 13

Да что url, что path... Иначе бы зачем nc_file_path нужна была.
18.06.2014, 19:46
Ответить | Цитировать
alexandr
Осипов Александр

Зарегистрирован:
2012-08-28
Сообщений: 13

Цитата:
Изучите функцию explode()

Пример
<? $array_img = explode(":",$f_картинка); ?>
<img src='<?=$array_img[3]?>' alt='<?=$array_img[0]?>'>


Да, но заборно же )
Я на более движковый метод надеялся.
29.06.2014, 14:41
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Если картинка лежит в поле типа "Файл", то вам надо в этот консолидированный компонент сохранять для каждого скопированного объекта три вещи:
1. ID исходного компонента
2. ID объекта в исходном компоненте
2. ID картиночного поля в этом компоненте или имя этого поля.
Потом, зная ID/имя поля, ID товара и ID компонента, применять функцию nc_file_path.
Более правильного решения, если идти "честным" путем, на мой взгляд нет.
А если не придерживаться "честности", то вариант с explode решает почти все ваши вопросы. улыбка

29.06.2014, 14:42
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Кстати, в неткате есть встроенная недокументированная функция копирования объектов. Она копирует в том числе и картинки. ;-)

30.06.2014, 11:02
Ответить | Цитировать
okn.name
Константин Орленко
okn.name

Зарегистрирован:
2010-07-20
Сообщений: 208

Руслан, какая?)

02.07.2014, 09:17
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Вот такая:
nc_copy_message($classID, $message, $cc);
Указываете компонент, объект и номер инфоблока, куда надо скопировать объект.
И аналогичная функция есть еще nc_move_message, кажется с такими же параметрами (не копирует, а переносит объект).
Только есть особенность - обе эти функции проверяют права, чтобы они были, кажется, не меньше модераторских. Поэтому если планируете использовать эти функции для обычных пользователей, то нужно скопировать эти функции куда-нибудь к себе и отключить там проверку прав доступа.
Пишите, если не разберетесь - погляжу в своих наработках поточнее, что да как. улыбка

02.07.2014, 09:51
Ответить | Цитировать
okn.name
Константин Орленко
okn.name

Зарегистрирован:
2010-07-20
Сообщений: 208

Руслан, спасибо. Поковыряю исходики.

198 196 2014-07-02 09:51:35 13704
Описание проекта