Вывод ссылки на скачивание файла в шаблоне дополнения 2.X

Вывод ссылки на скачивание файла в шаблоне дополнения

 
Посетитель
no avatar
Сообщений: 4
Здравствуйте. Подскажите, как организовать вывод ссылки на скачивание файла в шаблоне дополнения.
Подробнее и примеры:

Есть небольшое мое дополнение. Есть форма добавления информации в базу данных, где присутствует загрузка файла на сервер. В базу, например в столбце "file", данные приходят типа (id: 34 name: name.zip size: 3494 path: 000/u1/6/2name.zip). В сам шаблон я передаю это значение в переменную $file['file'], но хотелось бы вывести просто ссылку на скачивание данного файла в самом шаблоне.

Например с загрузкой картинки проще все. В базу попадает значение типа(--- normal: > 000/u1/7/3/картинка.png) и чтобы ее вывести в шаблоне, я получаю данное значение в переменную
Код PHP:
  1.  
  2. $image[например - 'logo']
  3.  
и вывожу таким способом
Код PHP:
  1.  
  2. <?php echo html_image($image['logo'], 'normal');?>
  3.  
Как мне подобным способом вывести ссылку на скачивание файла?? Помогите примером.
Спасибо
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3816
Код PHP:
  1. <a href="<?php echo href_to('files', 'download', array($image['logo']['id'], files_user_file_hash($image['logo']['path']))); ?>"><?php echo $image['logo']['name']; ?></a>
  2. или
  3. <a href="<?php echo href_to('files', 'download', array($image['logo']['id'], files_user_file_hash($image['logo']['path']))); ?>">Скачать</a>
Реклама
cms
Посетитель
no avatar
Сообщений: 4
Loadырь:

Спасибо за пример, но почему-то он не работает в моем случае. Я понял принцип, но подставляя свои переменные - результат пуст.
Может быть я что-то не до конца понимаю, попробую еще раз описать проблему.

Начну не с самого начала, там проблем нет. В базе есть столбец file, в него записываются данные с загрузки файла я так понимаю массивом.

id: 34
name: file.zip
size: 3494
path: 000/u1/6/2/file.zip

В action файле я получаю это назначение
Пример:
Код PHP:
  1.  
  2. $file = $this->model->getFile($id);
  3. if (!$file) {
  4. cmsCore::error404();
  5. }
  6. $template = cmsTemplate::getInstance();
  7.  
  8.  
  9. $template->render('таблица', array(
  10. 'file' => $file,
  11.  
  12. ));
  13.  
  14. }
  15. }
  16.  
В шаблоне могу вывести только строкой типа
Код PHP:
  1.  
  2. <?php echo html($file['file']);?>
  3.  
Подставляя в Ваш пример выше - выводит пустоту.
т.е если я делаю так

Код PHP:
  1.  
  2. <a href="<?php echo href_to('files', 'download', array($file['file']['id'], files_user_file_hash($file['file']['path']))); ?>"><?php echo $file['file']['name']; ?></a>
  3.  
Может я в action файле как-то не правильно принимаю его или в чем моя ошибка?
Посетитель
no avatar
Сообщений: 4
Народ, ну подскажите. 3-й день сижу(((
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3816
@slava:
В базе есть столбец file, в него записываются данные с загрузки файла я так понимаю массивом.
В в базе в поле типа "Файл" пишется массив данных преобразованный в строку. Если вы с легкостью можете вывести массив строковыми функциями типа
Код PHP:
  1. <?php echo html($file['file']);?>
то у вас точно не массив, а строка полученная из базы. Чтобы получить из этой строки массив, надо сделать так
Код PHP:
  1. $file['file'] = cmsModel::yamlToArray($file['file']);
Посетитель
no avatar
Сообщений: 4
Loadырь:

@slava:
В базе есть столбец file, в него записываются данные с загрузки файла я так понимаю массивом.
В в базе в поле типа "Файл" пишется массив данных преобразованный в строку. Если вы с легкостью можете вывести массив строковыми функциями типа
Код PHP:
  1.  
то у вас точно не массив, а строка полученная из базы. Чтобы получить из этой строки массив, надо сделать так
Код PHP:
  1. $file['file'] = cmsModel::yamlToArray($file['file']);

Спасибо большое!
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: