Супербыстрый хостинг на SSD от 165р в месяц   •   Реклама
1 538 просм
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 – это порядковый номер файла.

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

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

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

15.08 в 18:37
  • 0
Проверенный  |  12

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

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

15.08 в 12:11
  • 0
Администратор  |  734

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

9.10 в 02:43
  • 1
Гости  |  679

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

8.10 в 21:15
  • 0
Гости  |  679

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

7.10 в 16:30
  • 0
Администратор  |  734

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

6.10 в 23:53
  • 2
Гости  |  679

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

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

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

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

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

5.10 в 09:16
  • 0
Гости  |  679

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

29.03 в 06:16
  • 1
Гости  |  679

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

15.03 в 03:39
  • 4
Администратор  |  734

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

14.03 в 02:31
  • 3
Гости  |  679

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

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

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

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

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

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

12.03 в 06:25
  • 3
Гости  |  679

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

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

11.03 в 01:01
  • 0
Администратор  |  734

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

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

10.03 в 01:04
  • 9
Гости  |  679

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

8.03 в 21:38
  • 2
Подняться наверх
«Pandoge» - помощник веб-мастера