Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Модули для DLE » Дополнительные стили и функции краткого поста

Дополнительные стили и функции краткого поста


     07.03.2014    хак    Модули для DLE    6270    17 комментариев

Краткая информация о модуле (хаке)

Автор: D0Gmatist
Версия DLE: 10.1
Контакты: Skype: D0Gmatist
Условия продажи: бесплатно
Цена: Бесплатно
Ломал голову как можно сделать не средствами css, что бы...
Все краткие посты были, разными по виду.
Разнообразить все посты не только по виду но и по содержанию.

Нашёл для себе решение которое оказалось довольно простым и лёгким... надеюсь и Вам оно поможет разнообразить ваш проект.

Предисловие ... у каждого поста есть id состоящие от одного числа и больше.
Значит в любом случае последнее число id состоит из числа от 1-0
На основе данного получается можно сделать тег для краткого поста который будет выводить последнее число из переменной равное от 1 до 0 что позволит создать 10 разных стилей для краткого поста
А так же на основе чего можно будет реализовать разные выоды

Приступим к самому коду
ЧАСТЬ 1
        $idDopClass = $row['id']; // создали переменную с ID
        $idDopClass = substr($idDopClass, -1); // вырезали из переменной последнее число
        $tpl->set( '{onnum-id}', $idDopClass ); // запихнули число в тег {onnum-id} для краткого шаблона


Таким образом для краткого поста мы получили тег который будет нам выдавать одно число из 1,2,3,4,5,6,7,8,9,0
На основе этого теперь можно в кратком посте сделать к примеру так
<div class="shortStory story{onnum-id}">
    КОНТЕНТ КРАТКОГО ПОСТА
</div>

Где story{onnum-id}
будет создавать дополнительный класс
story1, story2, story3, story4, story5, story6, story7, story8, story9, story0

ЧАСТЬ 2
        if ($idDopClass == "5") { // если последнее число в ID равно ПЯТЬ (число можно от 1 до 0) то ...

            $tpl->set( '{big-minipost}', "bigMiniPost" ); // тег {big-minipost} выведет класс bigMiniPost
            $tpl->set( '[big-minipost]', "" ); // тег аннулируется
            $tpl->set( '[/big-minipost]', "" ); // тег аннулируется

        } else { // если последнее число в ID НЕ равно ПЯТЬ то ...

            $tpl->set( '{big-minipost}', "" ); // тег аннулируется
            $tpl->set_block( "'\\[big-minipost\\](.*?)\\[/big-minipost\\]'si", "" ); // всё что между тегами и теги вырезать

        }


Что нам это даёт .. теперь в кратком посте можно так же в обрамление добавить тег
<div class="shortStory story{onnum-id} {big-minipost}" >
    КОНТЕНТ КРАТКОГО ПОСТА
    [big-minipost]ДОПОЛНИТЕЛЬНАЯ ЛЮБАЯ ИНФОРМАЦИЯ ИЛИ РЕКЛАМА[/big-minipost]
</div>

Где story{onnum-id} - это описано в первой части
{big-minipost} - это тег который будет выводить класс bigMiniPost при условии что у ID последнее число равно ПЯТЬ
И ...
[big-minipost]ДОПОЛНИТЕЛЬНАЯ ЛЮБАЯ ИНФОРМАЦИЯ ИЛИ РЕКЛАМА[/big-minipost] - это любой ваш текст или теги к краткому посту или реклама (банер), которые будут вырезаться из контента если в ID последнее число не равно ПЯТЬ

А так же можно выводить не только у одного числа изменив часть проверки условия
        if ($idDopClass == "5") { // если последнее число в ID равно ПЯТЬ то ...

на
        if ($idDopClass == "5" OR $idDopClass == "0") { // если последнее число в ID равно ПЯТЬ или НОЛЬ то ...

или на
        if ($idDopClass == "3" OR $idDopClass == "6" OR $idDopClass == "9") { // если последнее число в ID равно ТРИ или ШЕСТЬ или ДЕВЯТЬ то ...

таким образом мы укажем с каким окончанием у ID буду происходить фокусы )))

ЧАСТЬ 3 (УСТАНОВКА)
Откройте \engine\modules\show.short.php
найдите строчку
        if( $allow_userinfo and ! $row['approve'] ) {
            
            $tpl->set( '{approve}', $lang['approve'] );
        
        } else
            $tpl->set( '{approve}', "" );

ниже допишите
        $idDopClass = $row['id'];
        $idDopClass = substr($idDopClass, -1);

        $tpl->set( '{onnum-id}', $idDopClass );

        if ($idDopClass == "5") {

            $tpl->set( '{big-minipost}', "bigMiniPost" );
            $tpl->set( '[big-minipost]', "" );
            $tpl->set( '[/big-minipost]', "" );

        } else {

            $tpl->set( '{big-minipost}', "" );
            $tpl->set_block( "'\\[big-minipost\\](.*?)\\[/big-minipost\\]'si", "" );

        }



С уважением Ваш Сергей Геннадьевич (D0Gmatist)

17 комментариев

ПафНутиЙ
Админ

ПафНутиЙ - 7 марта 2014 21:26 -

[id$=0] > .news {...}

Если не ошибся по памяти, эта конструкция сморит на последнюю цифру id новости.
Но это если на css желать.

Каков вопрос - таков и ответ. Просто помните об этом.

D0Gmatist
Юзер

D0Gmatist - 7 марта 2014 22:00 -

Ну я не знал ... )))
и к стати можно даже так передавать условие
        if ( $idDopClass == ("3" OR "6" OR "9") ) { // если последнее число в ID равно 3 или 6 или 9 то ...



так даже будет правильнее )

dj-avtosh
PHP-developer

dj-avtosh - 27 марта 2014 05:34 -

if ( in_array ( $idDopClass, array ( 3, 6, 9 ) ) )


if ( 0 == $idDopClass%3 && $idDopClass < 10  )

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 27 марта 2014 05:44 -

if ( $idDopClass == ("3" OR "6" OR "9") ) {


лажа

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

DaivZ
Юзер

DaivZ - 11 марта 2014 01:00 -

А так же на основе чего можно будет реализовать разные выоды
Почему Ctrl+Enter не работает?

kricha
Юзер

kricha - 14 марта 2014 18:19 -

D0Gmatist, а еще, кстати так :-D
if (in_array($idDopClass, array(2,5,1))) {
    # code...
}

D0Gmatist
Юзер

D0Gmatist - 15 марта 2014 16:21 -

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

kricha
Юзер

kricha - 15 марта 2014 16:24 -

Мм.. Условие звучит довольно просто. "Если элемент присутствует в массиве значений, то..."

D0Gmatist
Юзер

D0Gmatist - 21 марта 2014 01:38 -

Цитата: kricha
"Если элемент присутствует в массиве значений, то..."

АУ ... id всегда есть у поста .. его просто не может не быть это автоинкрементный ключ в таблице БД

kricha
Юзер

kricha - 21 марта 2014 01:40 -

И? :-)
Я этого нигде не отрицал.

D0Gmatist
Юзер

D0Gmatist - 21 марта 2014 01:55 -

Ну вы так с ... написали мол ...

kricha
Юзер

kricha - 21 марта 2014 02:29 -

А как связано гипотетическое отсутствие поста с тем, что я написал?

D0Gmatist
Юзер

D0Gmatist - 21 марта 2014 02:37 -

Теперь я вас не понимаю !!!какого поста!!! ..
я что в паблике написал ссылку на сайт пример-демо - что вы от меня хотите ..
я специально описал функционал хака и вдоль и поперёк ..
что вам ещё надо ..
что тут обсуждать ..
реально в дырявое ведро набираем воду .. в пустую ... дело ....

dj-avtosh
PHP-developer

dj-avtosh - 27 марта 2014 05:37 -

:D :D

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

aebot
Юзер

aebot - 21 марта 2014 00:29 -

а примера нет случаем? не сильно то ясно что в итоге

D0Gmatist
Юзер

D0Gmatist - 21 марта 2014 00:38 -


Вот .. у меня каждый десятый краткий пост с уникальным ID
story_id{onnum-id}
.story_id0{}
.story_id1{}
.story_id2{}
.story_id3{}
.story_id4{}
.story_id5{}
.story_id6{}
.story_id7{}
.story_id8{}
.story_id9{}

что в дальнейшем мне позволит делать различия

budda555
Юзер

budda555 - 27 марта 2014 03:08 -

Я так понял, что-то вроде этого получается итог?
Как на Цукерберг Позвонит! вывод новостей.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх