• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Показ pdf в DLE

grafvadim

Постоялец
Регистрация
25 Мар 2012
Сообщения
177
Реакции
197
Доброго дня.

Очень нужно сделать вывод PDF на страницах DLE.

Нужно при в ставке вот такой ссылки - Для просмотра ссылки Войди или Зарегистрируйся
на страницы показывался просмотр файла.
Пробовал вставить код, как здесь - Для просмотра ссылки Войди или Зарегистрируйся

Но что то не выводится(.
Версия DLE 11.2
 
на страницы показывался просмотр файла.
Что мешает использовать iframe вставку в документе?
Делаешь
Код:
<iframe width="640" height="372" src="https://drive.google.com/file/d/0B3Mgv61OT1vuSkIycW9rZnlnSXc/preview" frameborder="0" /></iframe>
дальше подгоняешь фрейм по ширине/высоте, и будет выводиться у тебя тот документ с гуглдрайва...

Скачать его нельзя, только просмотр.
На WordPress работает, на DLE не могу это сделать - Для просмотра ссылки Войди или Зарегистрируйся
кстати, на вордпресс именно через фрейм и выводится этот документ:
HTML:
<iframe src="https://drive.google.com/file/d/0B3Mgv61OT1vudHNnZkFMSG40Mlk/preview" width="100%" height="980"></iframe>
 
Скачать его нельзя, только просмотр.
Я очень рад...

Для просмотра ссылки Войди или Зарегистрируйся - это ссылка на HTML-страницу. Как ты предлагаешь программе, которая не умеет работать с HTML показать тебе что-то?
Это как пытаться машину подключить к розетке вместо бензоколонки и ждать, что она заведётся...

Ты должен либо передать именно PDF-файл, либо использовать другой формат вставки, как уже написал killoff.
 
Что мешает использовать iframe вставку в документе?
Делаешь
Код:
<iframe width="640" height="372" src="https://drive.google.com/file/d/0B3Mgv61OT1vuSkIycW9rZnlnSXc/preview" frameborder="0" /></iframe>
дальше подгоняешь фрейм по ширине/высоте, и будет выводиться у тебя тот документ с гуглдрайва...


кстати, на вордпресс именно через фрейм и выводится этот документ:
HTML:
<iframe src="https://drive.google.com/file/d/0B3Mgv61OT1vudHNnZkFMSG40Mlk/preview" width="100%" height="980"></iframe>
в новостях такой код не работает, может только у меня. а при создание статистической страницы и вставки этого кода+галочка "не форматировать Html" - работает.
И то ладно. Спасибо.
 
Что бы все отображалось для 11,2 нужно поправить несколько файлов

Открыть engine/ajax/upload.php
найти

Код:
$allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v", "mkv" );

заменить на

Код:
$allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v", "mkv", "pdf", "pptx", "pptm", "ppt", "tiff" );

найти далее

Код:
if( $file_type == "mp3" ) {                 
                $file_link = $config['http_home_url'] . "engine/skins/images/mp3_file.png";
                $data_url = $config['http_home_url'] . "uploads/files/" . $row['onserver'];
                $file_play = "audio";
                }

ниже вставить

Код:
elseif ($file_type == "pdf" or $file_type == "pptx" or $file_type == "pptm" or $file_type == "ppt" or $file_type == "tiff")
{
                $file_link = $config['http_home_url'] . "engine/skins/images/video_file.png";
                $data_url = $config['http_home_url'] . "uploads/files/" . $row['onserver'];
                $file_play = "docs";               
             
            }

Найти далее еще раз

Код:
if( $file_type == "mp3" ) {
                 
                $file_link = $config['http_home_url'] . "engine/skins/images/mp3_file.png";
                $data_url = $config['http_home_url'] . "uploads/files/" . $row['onserver'];
                $file_play = "audio";
             
                    }

Добавить ниже

Код:
elseif ($file_type == "pdf" or $file_type == "pptx" or $file_type == "pptm" or $file_type == "ppt" or $file_type == "tiff")
{
$file_link = $config['http_home_url'] . "engine/skins/images/video_file.png";
                $data_url = $config['http_home_url'] . "uploads/files/" . $row['onserver'];
                $file_play = "docs";
}

Найти далее

Код:
if ( mode == "video" || mode == "audio" || mode == "flash") {

заменить на

Код:
if ( mode == "video" || mode == "audio" || mode == "flash" || mode == "docs") {

Найти далее

Код:
if ( mode == "video" ) $('#imgparam3').html('<input id="playurl" name="playurl" value="[video={$video_config['width']}x{$video_config['height']},'+
$(this).attr('href')+']" style="width:420px;" class="edit bk" />');

Ниже вставить

Код:
if ( mode == "docs" ) $('#imgparam3').html('<input id="playurl" name="playurl" value="[docs='+$(this).attr('href')+']" style="width:420px;" class="edit bk" />');

Открыть файл engine/classes/parse.class.php, найти

Код:
$source = preg_replace_callback( "#\[flash=([^\]]+)\](.+?)\[/flash\]#i", array( &$this, 'build_flash'), $source );

Ниже вставить

Код:
$source = preg_replace( "#\[docs=([^\]]+)\]#ies", "\$this->build_docs('\\1')", $source );

Далее найти

Код:
$txt = preg_replace_callback( "#<!--dle_flash_begin:(.+?)-->(.+?)<!--dle_flash_end-->#is", array( &$this, 'decode_flash'), $txt );

Ниже вставить

Код:
$txt = preg_replace( "#<!--dle_docs_begin:(.+?)-->(.+?)<!--dle_docs_end-->#is", '[docs=\\1]', $txt );

Далее найти

Код:
function build_email( $matches=array() ) {
     
        $matches[1] = $this->clear_url( $matches[1] );
     
        return "<a href=\"mailto:{$matches[1]}\">{$matches[2]}</a>";
 
    }

Ниже вставить

Код:
function build_docs($url) {
        $url = $this->clear_url( urldecode( $url ) );
        if ($url == "" ) return;
        if ( $file_type == "pdf" or $file_type == "pptx" or $file_type == "pptm" or $file_type == "ppt" or $file_type == "tiff" ) return "[docs=". $url."]";
        return "<!--dle_docs_begin:".$url."--><center><iframe style=\"border-style: none;\" src=\"https://docs.google.com/gview?url=$url&embedded=true\" width=\"600\" height=\"650\"></iframe></center><!--dle_docs_end-->";
    }

В файле /upload/files/.htaccess добавить эти расширения pdf|pptx|pptm|ppt|tiff

Теперь как выводить

Выбираем загрузку файлов

Screenshot_3.png

Загружаем файл

Screenshot_4.png

Файл загружен теперь закрываем загрузчик

Screenshot_5.png

Открываем заново загрузчик и видим он как видео файл

Screenshot_6.png

1. Нажимаем на него 2. Выбираем ссылка на воспроизведение 3. Вставляем его

Screenshot_7.png

Должно получится так

Screenshot_8.png


Переходим на сайт и радуемся

Screenshot_9.png

bb-код для добавления удаленных документов [docs=[/B]ссылка]
 
Последнее редактирование:
Выбираем загрузку файлов
Нужно при в ставке вот такой ссылки - Для просмотра ссылки Войди или Зарегистрируйся
И как тут с гуглдрайв то показать? ТС насколько он правильно написал не нужно загружать файлы на сервер! Так же как и в примере что он давал - файл на вордпресс показывается с гуглдрайв...
 
И как тут с гуглдрайв то показать? ТС насколько он правильно написал не нужно загружать файлы на сервер! Так же как и в примере что он давал - файл на вордпресс показывается с гуглдрайв...

Что бы с гуглдрайва показывала то надо в файле /classes/parse.class.php вместо
Код:
function build_docs($url) {

        $url = $this->clear_url( urldecode( $url ) );
        if ($url == "" ) return;
        if ( $file_type == "pdf" or $file_type == "pptx" or $file_type == "pptm" or $file_type == "ppt" or $file_type == "tiff" ) return "[docs=". $url."]";
        return "<!--dle_docs_begin:".$url."--><center><iframe style=\"border-style: none;\" src=\"https://docs.google.com/gview?url=$url&embedded=true\" width=\"600\" height=\"650\"></iframe></center><!--dle_docs_end-->";
    }

Вставить вот это
Код:
function build_docs($url) {
        $url = $this->clear_url( urldecode( $url ) );
        if ($url == "" ) return;
        if ( $file_type == "pdf" or $file_type == "pptx" or $file_type == "pptm" or $file_type == "ppt" or $file_type == "tiff" ) return "[docs=". $url."]";
        return "<!--dle_docs_begin:".$url."--><center><iframe style=\"border-style: none;\" src=\"https://drive.google.com/file/d/$url/preview\" width=\"600\" height=\"650\"></iframe></center><!--dle_docs_end-->";
    }

И теперь в новостях мы ставим

Screenshot_10.png

[docs=[/COLOR]0B3Mgv61OT1vuSkIycW9rZnlnSXc] - Красным выделен индификатор с гугладрайва

Screenshot_11.png

Screenshot_12.png

Но теперь если мы загрузим на сервер pdf то оно показывать не будет
 
Но теперь если мы загрузим на сервер pdf то оно показывать не будет
поэтому лучше добавить ссылку в доп поле, и выводить уже фрейм через шаблон, без изменений файлов DLE, что только положительно скажется на обновлениях на актуальную версию.
 
Назад
Сверху