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

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

18.06.2014, 17:56
alexandr
Осипов Александр

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

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

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

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

orlovkn
18.06.2014, 19:38
Nexwich
Панасин Александр
Nexwich

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

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

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

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
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
Сообщений: 962

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

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

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

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

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

orlovkn
02.07.2014, 09:17
Руслан Густокашин
Студия Вэлпис

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

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

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

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

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