DLE – разный фон в коротких новостях

dle random bg shortstory - DLE - разный фон в коротких новостях

Недавно в сети наткнулся на статью о чередовании фона в коротких новостях. Метод основан на том, что для каждой новости присваивется уникальный id (Очередь добавления – у первой будет id=1, у второй = 2, у 137 = 137).

В математике числа делят на парные и непарные. Вот и хак основан на этом! Функция делит id новости пополам и тем самым определяет ее принадлежность. Если после запятой нет чисел – число парное (128/2 = 64.0), если есть – непарное (129/2=64.5). Для парных подставляется один цвет, а для непарных – другой.

Установка чередования фона

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

Правка PHP движка

Открываем engine/modules/show.short.php и находим строку:

$tpl->compile( 'content' );

выше вставляем:

$bg = $row['id'];  

if ($bg%2 > 0) {    
	$bgid = 'bg1'; 
}
else {
	$bgid = 'bg2'; 
}

$tpl->set( '{bg-id}', $bgid );

Шаблон shortstory.tpl

В папке с шаблоном открываем shorstory.tpl и в контейнер короткой новости добавляем нашу переменную:

<div class="catalog_new news-{bg-id}">
[full-link]
	<div class="catalog_img"><img src="{image-1}" alt=""></div>
	<div class="catalog_title">{title}</div>
	<div class="catalog_text">
		{short-story}
	</div>
[/full-link]	
</div>

CSS

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

.news-bg1{
	background-color : #F2F8E0;
}
.news-bg2{
	background-color : #FFF;
}

Случайный цвет фоном в DLE

dle random bg shortstory rotator 1 - DLE - разный фон в коротких новостях
DLE — случайных цвет в background
dle random bg shortstory rotator 2 - DLE - разный фон в коротких новостях
DLE — случайных цвет в background
dle random bg shortstory rotator 3 - DLE - разный фон в коротких новостях
DLE — случайных цвет в background

Также можно настроить и случайную подстановку фона (см. три примера выше) короткой новости в CMS DLE по заранее подготовленному списку цветов. Для этого понадобится PHP ротатор, о работе которого написано тут

Настройка PHP ротатора

Создаем пустой PHP файл с любым именем, например, bgr.php в который помещаем следующий код:

<?php

//Новый цвет указывается без знака решетки впереди, берется в одинарные верхние кавычки (буква Э на русской раскладке) и в конце строки ставится запятая (кроме последней см. пример ниже).

$colors = [
	'ccc', 
	'000', 
	'fff', 
	'ff0000', 
	'333', 
	'f2f2f2'
];

echo $colors[array_rand($colors)];

Помещаем ротатор в корень сайта и выводим в шаблон shortstory.tpl в том месте, где начинается разметка контейнера короткой новости, например,:

<div class="catalog_new" style="background:#{include file="bgrot.php"}">
[full-link]
	<div class="catalog_img"><img src="{image-1}" alt=""></div>
	<div class="catalog_title">{title}</div>
	<div class="catalog_text">
		{short-story}
	</div>
[/full-link]	
</div>

Похожие записи


PHP — простой ротатор баннеров, ротатор для DLE и WordPress
Аналог на javascriptАналог на PHP для больших кодов Очень простой ротатор кода на PHP. Сначала мы объявляем простой двумерный массив...
Как изменить пароль пользователя CMS DLE и WordPress через SQL-запрос
Перебираю старые статьи с целью их оптимизации и наткнулся на эту. В принципе, способ подойдет для любой системы на любом...
Полный гайд по миграции с CMS DLE на WordPress
Данный сайт в апреле 2019 года полностью переехал на CMS WordPress и в июне, после завершения всех правок (а их...
DLE – быстрый переезд на хостинг не используя инсталятор
Установка движка DLE на хостинг происходит через специальный файл — инсталятор, в котором необходимо заполнить все поля (имя базы данных,...
DLE — монетизируем загруженные в новостях файлы через отдельный домен
Как много у вас загруженных файлов (приложений к постам) не считая картинок? У меня много и придумал способ их монетизировать!...

Один комментарий на «“DLE – разный фон в коротких новостях”»

Добавить комментарий