Безлимитный хостинг на сверхбыстрых SSD-дисках от 66р в месяц   •   Реклама
2 013 просм
14 комм
Поделиться:

Свой дизайн для каждого n-го файла (attachment) для DLE

22 дек
Хаки

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

Изначально суть хака заключалась в том, чтобы вывести свой код или текст у определенного файла, прикрепленного к статье (не путайте с файлом, загруженным через дополнительное поле).

А в последующем, как оказалось, с помощью него можно и вовсе изменить внешний вид каждого n-го прикрепленного файла.

Установка

1. Подключитесь к вашему сайту по FTP.

2. Откройте файл functions.php в папке /engine/modules/. В нем найдите строку:

while ( $row = $db->get_row() ) {

И выше нее вставьте:

$mlc_numb = 1;

3. Здесь же найдите строку:

$tpl->result['attachment'] = '';

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

$mlc_numb++;

4. И в качестве последней правки в этом же файле найдите строку:

if( date( 'Ymd', $row['date'] ) == date( 'Ymd', $_TIME ) ) {

И выше нее вставьте:

$tpl->set_block("'\[numbattachment-".$mlc_numb."\](.*?)\[/numbattachment-".$mlc_numb."\]'si", "\\1");
$tpl->set_block("'\[numbattachment-[0-9]\](.*?)\[/numbattachment-[0-9]\]'si", "");

Сохраните все изменения и отправьте файл обратно на сайт.

5. Очистите кэш сайта.

Теперь в шаблоне файлов (файл attachment.tpl в папке вашей темы) вам будут доступны следующие теги:

[numbattachment-N] Код или текст для первого файла [/numbattachment-N]

Где N – это порядковый номер файла.

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

14
комментариев
Форма комментирования этой статьи скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 0
    839
      •  Администратор
    15 авг в 18:37

    Артём Ройзман, постараюсь в ближайшее время дать ответ.

    • 0
    26
      •  Проверенный
    15 авг в 12:11

    Артём. Такая же проблема и у меня иерархией. DLE 13.2, вывод делаю через доп. поля, но всё равно если хоть одно поле пропуская, напр 1 и вывожу второе, то дизайн к нему применяется с первой.

    Помогите с решением пожалуйста.

    • 1
    839
      •  Администратор
    9 окт в 02:43

    Guser, пробуйте. Вы делаете все сразу с 4 шага.

    $tpl->set_block("'\[numbattachment-".$type."\](.*?)\[/numbattachment-".$type."\]'si", "\\1");

    $tpl->set_block("'\[numbattachment-(.*?)\](.*?)\[/numbattachment-(.*?)\]'si", "");

    В шаблоне attachment.tpl используете теги

    [numbattachment-zip] Вид для ZIP [/numbattachment-zip]

    [numbattachment-mp3] Вид для MP3 [/numbattachment-mp3]

    И так далее.

    Если не будет работать - то полагаю, что у вас DLE ниже 10.5 версии. Об этом тогда тоже напишите - скажу что нужно добавить.

    Удачи wink

    • 0
    766
      •  Гости
    8 окт в 21:15

    Подскажите пожалуйста

    • 0
    766
      •  Гости
    7 окт в 16:30

    Очень жду! Спасибо!

    • 2
    839
      •  Администратор
    6 окт в 23:53

    Guser, дам ответ на Ваш вопрос чуть позже

    • 0
    766
      •  Гости
    5 окт в 09:16

    Добрый день! А как сделать так чтобы дизайн attach менялся в зависимости от типа файла?

    Например я загрузил .txt формат чтобы было вроде

    [styleattachment-txt] Код или текст для первого файла [/styleattachment-txt]

    и так же для других типов. А всего 3 типа .fb2 .pdf .ePub

    Возможно ли такое? Заранее спасибо!

    • 1
    766
      •  Гости
    29 мар в 06:16

    А можно как нибудь сделать свой дизайн для каждого аттача из дополнительного поля по названию поля? Так будет гораздо рациональней, а то этот хак немного бессмысленный.

    • 4
    766
      •  Гости
    15 мар в 03:39

    Загружаю через поля, да и можно через текст - и там, и там, какой файл раньше загружен, тот и будет под номером 1. Это понятно, это учитывается, иначе какой бы смысл был от хака. Но что получается, когда в статью загружен только один файл, уникализация которого прописана в [numbattachment-2]? sad

    • 3
    839
      •  Администратор
    14 мар в 02:31

    Анатолий, у вас файлы вставляются прямо в текст статьи? Что если использовать доп. поля для вывода аттачей. В таком случае - вы будете знать порядковые номера файлов, и будете просто заполнять нужные вам поля определенным аттачем.

    • 3
    766
      •  Гости
    12 мар в 06:25

    Артём, я прочитал комментарии к другой новости, в комментариях которой вы впервые показали миру этот хак, и там человека гложил такой же вопрос. Как я понял, он всё криво объяснил, либо это уже из оплачиваемого разряда.

    Вы предлагаете такую схему:

    [numbattachment-1] Вид 1 файла [/numbattachment-1]

    [numbattachment-2] Вид 2 файла [/numbattachment-2]

    [numbattachment-3] Вид 3 файла [/numbattachment-3]

    Но, смотрите, иногда в новости Не требуется четкая иерархия загруженных файлов (только один файл, или, например, 2,3, или 1 и 3, или только 3-й). А ваш хак завязан именно на четкой иеархии, он выдаёт порядковый номер в зависимости от того, какой по счету аттач. Получается, что тот файл, который обычно загружается вторым, получает вид файла, который обычно идёт первым и т.д. Напишите на почту стоимость, если готовы взяться.

    • 0
    766
      •  Гости
    11 мар в 01:01

    Здравствуйте. Сейчас, когда первое поле не используется, файл из второго получает порядковый номер 1 и, соотвественно, выводится между тегами [numbattachment-1] код+дизайн предусмотрен для файла из первого доп.поля [/numbattachment-1], получая не соответствующий дизайн и описание. Можно ли сделать так, чтобы он всегда выводился между тегами [numbattachment-2]дизайн и код для файла из второго поля [/numbattachment-2]

    Версия 12.1., на 11 Ваш хак тоже отлично работает.

    • 9
    839
      •  Администратор
    10 мар в 01:04

    Анатолий, здравствуйте. То есть, если файл находиться в первом доп. поле - один дизайн, если, например, во втором доп. поле - то другой дизайн?

    И на какой версии движка это нужно.

    • 2
    766
      •  Гости
    8 мар в 21:38

    Перелазил весь интернет и нигде ничего подобного не нашёл. Артём, вы просто Бог, посоветовал вас друзьям. А можно как-нибудь сделать строгую привязку шаблона в зависимости от дополнительного поля?Например, для всех файлов, загруженных в поле [xfvalue_files_pdf] будет привязка к [numbattachment-1], вне зависимости от того, какой по счету этот аттач.

Подняться наверх
«Pandoge» - помощник вебмастера