Не нравятся результаты поиска? Попробуйте другой поиск!

Google docs viewer на DLE 9.7


     31.01.2013    Хаки    5422

вопрос
Добрый день, в общем понадобилось отображать документы word и excel на сайте, в процессе поиска наткнулся на вот такой хак


Но как я понял при установке, он под старую версию DLE, может кто-то адаптировал? В принципе все пункты установки кроме 1 и 2 выполняются.
1. Открываем /engine/inc/files.php - в этом файле нет того содержимого, которое нужно заменить... Помогите пожалуйста адаптировать!
Заранее спасибо!

Ответа пока нет


Комментарии пользователей (16)

iwanowi4
88 | 71

iwanowi4 - 1 февраля 2013 03:26 - Юзер

Цитата: inex
/engine/inc/files.php - в этом файле нет того содержимого

1. $allowed_video
engine\classes\uploads\upload.class.php
engine\ajax\upload.php

819836
31 | 24

819836 - 1 февраля 2013 13:52 - Юзер


ссылка на google doc wiew
затем получаем код iframe вида
<iframe src="http://docs.google.com/viewer?url=[ссылка на документ]&embedded=true" width="600" height="780" style="border: none;"></iframe>

в результате получаем такое:
ссылка на картинку

просто вставь iframe код где тебе надо, а ссылку на документ, вставь в шаблон через доп поле !

teleoperator27
10

122 | 34

teleoperator27 - 3 апреля 2014 12:01 - Юзер


Понадобилась эта лабуда под 10.1, сделал следующим образом:

Открыть 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") {

5.Найти далее
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=\"http://docs.google.com/gview?url= $url&embedded=true\" width=\"600\" height=\"650\"></iframe></center><!--dle_docs_end-->";
    }

в файле /upload/files/.htaccess добавить эти расширения ну и в настройках групп разрешить загрузку. В принципе вся эта байда норм работает, но есть непонятный баг, который не могу чет решить. Непосредственно после загрузки эти файлы (например .pdf) во всплывающем окне загрузки показываются как "нечитаемые" :) Ну то есть, только аттачментом их вставить можно. (на картинке скрин1) . Закрываю это окошко (не новость, а само окно), опять окрываю и вижу, что все гуд (скрин2). В каком месте косяк, кто подскажет, почему так работает странно?

teleoperator27
10

122 | 34

teleoperator27 - 3 апреля 2014 15:52 - Юзер

Все, вопрос решен, хак готов. вдогонку к тому, что написано надо:
открываем engine/classes/uploads/upload.class.php ищем
private $allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v", "mkv", );
меняем на
private $allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v", "mkv","pdf", "pptx", "pptm", "ppt", "tiff" );
далее ищем (повторяем процудуру два раза)
 if( $type == "mp3" ) {
                                
                            $file_link = $config['http_home_url'] . "engine/skins/images/mp3_file.png";
                            $data_url = $config['http_home_url'] . "uploads/files/" . FOLDER_PREFIX . $uploaded_filename;
                            $file_play = "audio";
                            
                        }
ниже вставляем
elseif ($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/" . FOLDER_PREFIX . $uploaded_filename;
                            $file_play = "docs";
            
                        }
все, работает прекрасно!

kalanixa
1

8 | 1

kalanixa - 8 апреля 2014 18:10 - Юзер

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

teleoperator27
10

122 | 34

teleoperator27 - 8 апреля 2014 19:13 - Юзер

Цитата: kalanixa
Пропала форма для выбора файлы и когда клацаешь на вкладки внутри окна загрузки, то страница добавления новости просто скролит.
баг был из-за добавления лишнего пробела в добавляемой строке
 if ( mode == "docs" ) $('#imgparam3').html('<input id="playurl" name="playurl" value="[docs='+$(this).attr('href')+']" style="width:420px;" class="edit bk" />');
видимо я когда вставлял из блокнота, накосячил, сорри

kalanixa
1

8 | 1

kalanixa - 8 апреля 2014 20:15 - Юзер

теперь причин волнений не должно быть)

radudu99
2

radudu99 - 13 июня 2014 13:54 - Юзер

Вот проблема...

после того как вставляю документ предед URL Есть + и за которого не показывает документ что делать?

radudu99
2

radudu99 - 13 июня 2014 14:56 - Юзер

Решил проблему просто!



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=\"http://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" or $file_type == "doc" or $file_type == "docx" ) return "[docs=". $url."]";
        return "<!--dle_docs_begin:".$url."--><center><iframe style=\"border-style: none;\" src=\"https://view.officeapps.live.com/op/embed.aspx?src=$url&embedded=true\" width=\"450\" height=\"650\"></iframe></center><!--dle_docs_end-->";
    }


Wodooo
1

Wodooo - 9 августа 2014 02:51 - Юзер

Подскажите пожалуйста, сделал как все описано выше но к сожалению вылезает следующее :

"Файл не найден
URL-адрес исходного файла недействителен, или документ не является общедоступным.
Проверьте, правильно ли указан URL-адрес, а затем свяжитесь с владельцем документа.
Дополнительные сведения"

Пробовал пдф разного размера но толку 0, версия DLE 10.2

dr_pasha
13 | 2

dr_pasha - 9 ноября 2014 17:20 - Юзер

Wodooo,
в файле /upload/files/.htaccess добавить эти расширения ну и в настройках групп разрешить загрузку. Это делал?

dr_pasha
13 | 2

dr_pasha - 18 ноября 2014 14:25 - Юзер

при быстром редактировании новостей с сайта выдает ошибку
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /classes/parse.class.php on line 396

Проблему решил.

sacred87
13 | 2

sacred87 - 22 февраля 2015 21:07 - Юзер

как решали проблему? поделитесь.

humgat
2

humgat - 19 марта 2015 09:38 - Юзер

"Файл не найден
URL-адрес исходного файла недействителен, или документ не является общедоступным.
Проверьте, правильно ли указан URL-адрес, а затем свяжитесь с владельцем документа.
Дополнительные сведения"

та же самая проблема, никак не могу решить

Madjack
11 | 1

Madjack - 24 марта 2015 02:17 - Юзер


Подскажите в чем проблема? Сделал все как описано у teleoperator27, файл загружается, можно скачивать, но в новости не показывает его :( Пробовал на DLE 10.1 и 10.4

teleoperator27
10

122 | 34

teleoperator27 - 5 июня 2016 14:28 - Юзер

Сегодня реализовывал на 11 версии, по собственной инструкции, все прекрасно работает. Только вместо http://docs.google.com/ надо писать httpS://docs.google.com/ Все показывается и все скачивается. У кого не работает отменяейте изменения и вставляйте по новой, вдумчиво и внимательно.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 10.10.2012 lexa21reg  Хаки