13 апр 2012
Отображение attachment картинкой [DLE 9.x]
DewonSil Категория: DATALIFE ENGINE » Модули
У нас вы можете скачать бесплатно Отображение attachment картинкой [DLE 9.x]

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Отображение attachment картинкой [DLE 9.x]

С помощью этого прекрасного хака Вы сможете украсить свой аттач (ссылку для скачивания файла) оригинальной картинкой расширения, с которым залит файл.
Авторство: tumoxa
Версия CMS DLE: 9.x

Установка:
1. Залить содержимое архива, папку filetypes, на сервер в папку с шаблоном (Пример: /ваш шаблон/filetypes)

2. В файле engine\modules\functions.php найти:
while ( $row = $db->get_row() ) {
        
        $size = formatsize( @filesize( ROOT_DIR . '/uploads/files/' . $row['onserver'] ) );
        $row['name'] = explode( "/", $row['name'] );
        $row['name'] = end( $row['name'] );

        $find_1[] = '[attachment=' . $row['id'] . ']';
        $find_2[] = "#[attachment={$row['id']}:(.+?)]#i";

        if ( ! $user_group[$member_id['user_group']]['allow_files'] ) {

            $replace_1[] = "<span class="attachment">{$lang['att_denied']}</span>";
            $replace_2[] = "<span class="attachment">{$lang['att_denied']}</span>";

        } elseif( $config['files_count'] == 'yes' ) {

            $replace_1[] = "<span class="attachment"><a href="{$config['https_home_url']}engine/download.php?id={$row['id']}{$area}" >{$row['name']}</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
            $replace_2[] = "<span class="attachment"><a href="{$config['https_home_url']}engine/download.php?id={$row['id']}{$area}" >\1</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";

        } else {

            $replace_1[] = "<span class="attachment"><a href="{$config['https_home_url']}engine/download.php?id={$row['id']}{$area}" >{$row['name']}</a> [{$size}]</span>";
            $replace_2[] = "<span class="attachment"><a href="{$config['https_home_url']}engine/download.php?id={$row['id']}{$area}" >\1</a> [{$size}]</span>";

        }

    }


И заменить на:

while ( $row = $db->get_row() ) {
        
        $size = formatsize( @filesize( ROOT_DIR . '/uploads/files/' . $row['onserver'] ) );
        $row['name'] = explode( "/", $row['name'] );
        $row['name'] = end( $row['name'] );

                $path_info = pathinfo(ROOT_DIR . '/uploads/files/' . $row['onserver']);
                $format = $path_info['extension'];
    
                switch($format)
                               {
                                default: $icon = '{THEME}/filetypes/blank.png'; break;
                                case 'doc': $icon = '{THEME}/filetypes/word.png'; break;
                                case 'bmp': $icon = '{THEME}/filetypes/word.png'; break;        
                                case 'jpg': $icon = '{THEME}/filetypes/jpg.png'; break;
                                case 'jpeg': $icon = '{THEME}/filetypes/jpg.png'; break;        
                                case 'png': $icon = '{THEME}/filetypes/png.png'; break;        
                                case 'gif': $icon = '{THEME}/filetypes/gif.png'; break;    
                    case 'psd': $icon = '{THEME}/filetypes/photoshop.png'; break;    
                                case 'mp3': case 'wav': case 'ogg': $icon = '{THEME}/filetypes/music.png'; break;    
                    case 'avi': case 'flv': case 'wmv': $icon = '{THEME}/filetypes/music.png'; break;    
                                case 'pdf': $icon = '{THEME}/filetypes/finerider.png'; break;
                                case 'exe': $icon = '{THEME}/filetypes/exe.png'; break;    
                                case 'txt': $icon = '{THEME}/filetypes/txt.png'; break;            
                                case 'phps': $icon = '{THEME}/filetypes/php.png'; break;        
                                case 'html': case 'htm': $icon = '{THEME}/filetypes/code.png'; break;
                                case 'rar': case 'zip':  case '7z': $icon = '{THEME}/filetypes/rar.png'; break;
                               }        
        
        $find_1[] = '[attachment=' . $row['id'] . ']';
        $find_2[] = "#[attachment={$row['id']}:(.+?)]#i";

        if ( ! $user_group[$member_id['user_group']]['allow_files'] ) {

            $replace_1[] = "<span class="attachment">{$lang['att_denied']}</span>";
            $replace_2[] = "<span class="attachment">{$lang['att_denied']}</span>";

        } elseif( $config['files_count'] == 'yes' ) {

            $replace_1[] = "<span class="attachment"><img src="$icon" alt="$format" align=

"middle"/><a href="{$config['https_home_url']}engine/download.php?id={$row['id']}{$area}" >{$row['name']}</a>

[{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
            $replace_2[] = "<span class="attachment"><img src="$icon" alt="$format" align=

"middle"/><a href="{$config['https_home_url']}engine/download.php?id={$row['id']}{$area}" >\1</a> [{$size}]

({$lang['att_dcount']} {$row['dcount']})</span>";

        } else {

            $replace_1[] = "<span class="attachment"><img src="$icon" alt="$format" align=

"middle"/><a href="{$config['https_home_url']}engine/download.php?id={$row['id']}{$area}" >{$row['name']}</a>

[{$size}]</span>";
            $replace_2[] = "<span class="attachment"><img src="$icon" alt="$format" align=

"middle"/><a href="{$config['https_home_url']}engine/download.php?id={$row['id']}{$area}" >\1</a> [{$size}]

</span>";

        }

    }


При желании Вы можете добавить новый тип файла, а соответственно и иконку к нему. Для этого Вам нужно после:
case 'rar': case 'zip':  case '7z': $icon = '{THEME}/filetypes/rar.png'; break;


вставить:
case 'Формат файла, например mp4': $icon = 'Путь к изображению формата файла, например {THEME}/filetypes/mp4.png'; break;


Скачивание файлов доступно только зарегистрированным пользователям









Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Eminem | 11 июля 2012 13:18
  • Группа: Посетители |
  • Комментарий: 1 (ссылка)

на 9.6 не устанавливайте заменил в functions.php на сайте выбила ошибку в подробности вдаваться не буду

Hacker-SoftLab | 29 июля 2012 09:01
  • Группа: Посетители |
  • Комментарий: 2 (ссылка)

Действительно:

Parse error: syntax error, unexpected T_STRING in /home/логин/domains/сайт.ру/public_html/engine/modules/functions.php on line 665

А в этой строке:

$replace_1[] = "<span class="attachment">

По ходу здесь нужно забыли заэкранировать кавычки для attachment (то есть должно быть так "<span class=\"attachment\">, также и в злодейской строке 666). Потом выдаёт:

Fatal error: Class 'microTimer' not found in /home/логин/domains/сайт.ру/public_html/engine/init.php on line 50


Строка 50:

пустая

А это по ходу из-за nulled 4

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.