Jump to content

Как сделать предпросмотр прикрепленных файлов IPB 3.2.3


SergCV
 Share

Recommended Posts

Хочу чтобы был предпросмотр прикрепленных PDF Doc xls ppt и прочих файлов через google docs.

нашел что для этого можно использовать один из следующих способов:

 

1. C использованием элемента <embed>.

 

<embed src="ссылка файла pdf" width="ширина в пикселях" height="высота в пикселях" />

 

2. C использованием <embed> через элемент <object>.

 

Спецификация HTML 4.0 рекомендует использовать тег <object> для загрузки внешних данных вместо тега <embed>, поэтому наилучшим вариантом будет поместить <embed> внутрь контейнера <object>.

 

<object><embed src="ссылка файла pdf" width="700" height="500" /></object>

 

3. С использованием тега <iframe>.

 

<iframe src="ссылка файла pdf" width="700" height="400"></iframe>

 

4. С использованием сервиса Google Docs Viewer (через iframe). (МОЙ ВАРИАНТ) !!!

 

<iframe src="http://docs.google.com/viewer?url="ссылка файла pdf"&embedded=true" width="700" height="500" style="border: none;"></iframe>

 

 

Куда вставить эти конструкции в шаблоне сообщения я нашел.

 

Внимание ! ВОПРОС:

 

Как в IPB 3.2.3 получить прямую ссылку на прикрепленный к сообщению файл? ЧТобы его съел гугл докс?

Ссылка вида:

 

http://site.ru/index.php?app=core&module=attach&section=attach&attach_id=2175

не проходит.

 

может это переменная какая или еще какой то способ.

Link to comment
Share on other sites

Файлы на форуме отдаются динамически через php, что позволяет контролировать доступ к ним масками доступа разным группам. Прямой ссылкой этот функционал ломается, потому что пользователь получает прямой доступ к файлу.

 

Show_attachments -> $data['attach_file']

Как сделать чтоб при прикреплении видео к посту отображалась прямая ссылка на него?

Link to comment
Share on other sites

Файлы на форуме отдаются динамически через php, что позволяет контролировать доступ к ним масками доступа разным группам. Прямой ссылкой этот функционал ломается, потому что пользователь получает прямой доступ к файлу.

 

Show_attachments -> $data['attach_file']

Как сделать чтоб при прикреплении видео к посту отображалась прямая ссылка на него?

 

Можно чуть поподробнее.

для чего это сделано это понятно.

но нужно как то прямую ссылку получить это очень важно.

 

$data['attach_file'] выводит название файла, а как получить прямую ссылку?

Link to comment
Share on other sites

но нужно как то прямую ссылку получить это очень важно.
Добавьте необходимые данные.

admin/applications/core/sources/classes/attach/class_attach.php

Ищите по

getTemplate( $skin_name )->Show_attachments(

и в массив добавляйте

'attach_ext'    => $row['attach_ext'],
'a_location'    => $row['attach_location'],

Дальше в шаблоне Show_attachments используйте

<if test="$data['attach_ext'] == 'pdf'">
   <iframe src="http://docs.google.com/viewer?url={$this->settings['upload_url']}/{$data['a_location']}&embedded=true" width="700" height="500" style="border: none;"></iframe>
</if>

Link to comment
Share on other sites

Большое спасибо за вашу помощь и участие.

Но с данным кодом тоже беда.

Вашим способом гуглу отдается файл вида:

/uploads/monthly_02_2014/post-21515-0-13682300-1392632099.ipb

а такое расширение он идентифицировать и прочитать не может

Link to comment
Share on other sites

а такое расширение он идентифицировать и прочитать не может
Странно. Я протестировал работу. Если перейти по данной ссылке в браузере, что наблюдается?
Link to comment
Share on other sites

Вашим способом гуглу отдается файл вида:

Этим способом должен отдаваться полный адреса файла вместе с upload_url. Единственное что стоило бы сделать это урленкодить адрес через {parse expression="urlencode($this->settings['upload_url'].'/'.$data['a_location'])"}

Если адрес в порядке, тогда смотрите документацию гугла по подключению адреса. Расширение аттачей в целях безопасности меняется на .ipb.

Link to comment
Share on other sites

Странно. Я протестировал работу. Если перейти по данной ссылке в браузере, что наблюдается?

Ссылка которая отдается таким способом имеет вид:

http://site.ru/uploads/monthly_02_2014/post-21515-0-28698400-1391352095.ipb

 

при переходе по ней браузер открывает окно с сохранением файла post-21515-0-28698400-1391352095 с расширением ipb (вместо необходимого pdf, doc, ppt).

 

файл действительно тот что нужно и если у него сменить расширение, он откроется в нужном виде.

 

Вопрос в том как его отправить гуглу с нужным расширением.

Link to comment
Share on other sites

Вопрос в том как его отправить гуглу с нужным расширением.

В принципе никак. Аттачи в ипб отдаются динамически где в скриптах отправляются все необходимые заголовки - content-type, оригинальное название файла. Либо отдавать гуглу динамическую ссылку (динамические адреса обязательно нужно енкодить), либо придумывать разные костыли со сменой расширения и тп.

Link to comment
Share on other sites

В принципе никак. Аттачи в ипб отдаются динамически где в скриптах отправляются все необходимые заголовки - content-type, оригинальное название файла. Либо отдавать гуглу динамическую ссылку (динамические адреса обязательно нужно енкодить), либо придумывать разные костыли со сменой расширения и тп.

 

 

Печаль. неужели нет решения данной проблемы.

Link to comment
Share on other sites

Может тогда кто то встречал другое решение как сделать предпросмотр прикрепленных файлов. без участия гугла.

может это плеер какой то или плагин.

Link to comment
Share on other sites

  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...