Информер курса валют ЦБ РФ   •   Магазин расширений
725 просм
7 комм
Поделиться:

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

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

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

А в последующем, как оказалось, с помощью него можно и вовсе изменить внешний вид каждого 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 – это порядковый номер файла.

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

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

И на какой версии движка это нужно.
  • 9
Анатолий
11.03 в 01:01
Здравствуйте. Сейчас, когда первое поле не используется, файл из второго получает порядковый номер 1 и, соотвественно, выводится между тегами [numbattachment-1] код+дизайн предусмотрен для файла из первого доп.поля [/numbattachment-1], получая не соответствующий дизайн и описание. Можно ли сделать так, чтобы он всегда выводился между тегами [numbattachment-2]дизайн и код для файла из второго поля [/numbattachment-2]
Версия 12.1., на 11 Ваш хак тоже отлично работает.
  • 0
Анатолий
12.03 в 06:25
Артём, я прочитал комментарии к другой новости, в комментариях которой вы впервые показали миру этот хак, и там человека гложил такой же вопрос. Как я понял, он всё криво объяснил, либо это уже из оплачиваемого разряда.
Вы предлагаете такую схему:
[numbattachment-1] Вид 1 файла [/numbattachment-1]
[numbattachment-2] Вид 2 файла [/numbattachment-2]
[numbattachment-3] Вид 3 файла [/numbattachment-3]

Но, смотрите, иногда в новости Не требуется четкая иерархия загруженных файлов (только один файл, или, например, 2,3, или 1 и 3, или только 3-й). А ваш хак завязан именно на четкой иеархии, он выдаёт порядковый номер в зависимости от того, какой по счету аттач. Получается, что тот файл, который обычно загружается вторым, получает вид файла, который обычно идёт первым и т.д. Напишите на почту стоимость, если готовы взяться.
  • 2
Анатолий, у вас файлы вставляются прямо в текст статьи? Что если использовать доп. поля для вывода аттачей. В таком случае - вы будете знать порядковые номера файлов, и будете просто заполнять нужные вам поля определенным аттачем.
  • 3
Анатолий
15.03 в 03:39
Загружаю через поля, да и можно через текст - и там, и там, какой файл раньше загружен, тот и будет под номером 1. Это понятно, это учитывается, иначе какой бы смысл был от хака. Но что получается, когда в статью загружен только один файл, уникализация которого прописана в [numbattachment-2]? sad
  • 3
Gena
29.03 в 06:16
А можно как нибудь сделать свой дизайн для каждого аттача из дополнительного поля по названию поля? Так будет гораздо рациональней, а то этот хак немного бессмысленный.
  • 0
Оставить комментарий:
Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных.
Ваше Имя
Ваш E-mail
Текст комментария