Супербыстрый хостинг на SSD от 115р в месяц   •   Реклама
1 449 просм
14 комм
Поделиться:

Свой дизайн для каждого 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 – это порядковый номер файла.

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

«Pandoge» - помощник веб-мастера
14
комментариев
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-й). А ваш хак завязан именно на четкой иеархии, он выдаёт порядковый номер в зависимости от того, какой по счету аттач. Получается, что тот файл, который обычно загружается вторым, получает вид файла, который обычно идёт первым и т.д. Напишите на почту стоимость, если готовы взяться.

  • 3

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

  • 3
15.03 в 03:39

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

  • 4
29.03 в 06:16

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

  • 1
5.10 в 09:16

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

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

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

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

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

  • 0

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

  • 2
7.10 в 16:30

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

  • 0
8.10 в 21:15

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

  • 0

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

  • 1

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

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

  • 0

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

  • 0
Гостям запрещено участвовать в обсуждениях сайта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Подняться наверх