Главная » 2011 » Май » 31 » Подсветка новостей и комментариев в DLE не вмешиваясь в php
05:01
Подсветка новостей и комментариев в DLE не вмешиваясь в php
Сегодняшняя статья будет посвящена довольно остро стоящей теме подсветки новостей и комментариев в DataLife Engine.
Я натыкался на много разных способов, но так или иначе все они по своей сути были хаками или модулями для DLE, требовали вмешательства в php-код движка и были привязаны к ID новости или коментария. Я же покажу Вам 2 способа подсветки новостей и комментариев не затрагивающих php и реализуемых в шаблоне независимо от версии DLE.

Первый способ:(на jQuery).

Суть метода подсказана небольшим скриптом, подсвечивающим каждую вторую строку таблицы или элементы списка LI (это уже как настроить скрипт).

1. Для начала подключим библиотеку jquery и пропишем наш маленький скрипт в main.tpl:

Перед тегом пишем:
<script type="text/javascript" src="/templates/Simple/js/jquery.js">
<script type="text/javascript">
$(document).ready(
  function()
  {
      $(".content li:even").addClass("alt");
  }
);

Данный скрипт будет искать блок с классом content и добавлять класс alt к каждому второму элементу списка.
только не забываем ставить свой путь к библиотеке.

2. дальше в main.tpl ищем тег {content}
и заменяем его на вот такую конструкцию:
[aviable=main|cat]
    [/aviable]
    {content}
    [aviable=main|cat]
[/aviable]

Добавляем теги aviable для того чтобы ублать элементы ul с тех страниц на которых они не нужны.

3. Открываем shortstory.tpl и в самом верху пишем
  • , а в самом низу пишем
  • думаю, объяснять тут ничего не нужно


    4. Ну а теперь самое интересное - CSS:

    Пусть содержимое shortstory.tpl у нас выглядит вот так:



  • {short-story}



  • т.е. блоку с новостью мы присвоили класс news, с ним и будем работать.
    Пишем в css-файл:
    .news {
        border: solid 1px #323232;
        padding:  10px;
        background: #eeeeec;
    }
    .alt .news {
        borde-colorr: #ccc;
        background: #fff;
    }

    как видно из кода для блока с классом news задана обводка почти чёрного цвета и серый фон. в то же время если этот блок будет находиться внутри блока с классом alt, то он получит белый фон и серую обводку, а так как класс alt присваивается у нас яваскриптом для каждого второго элемента li требуемый эффект мы получили.

    Аналогичным способом можно подсвечивать и коментарии.

    К плюсам данного спопоба можно отнести независимость от ID новости, к минусам - сам яваскрипт, всётак лишние 55кб
    .


    Второй способ:(только CSS).

    Сразу оговорюсь что данный способ привязан к ID новости или коментария и если подряд будут идти 2 новости с чётным или нечётным ID - они будут с одинаковым оформлением


    1. Добавляем класс к новости

    Как известно, чтобы вывести ID новости в шаблон надо вставить тег {news-id}, добавим этот тег в класс
    .

    2. CSS
    Для "подсветки" новости мы будем использовать селекторы атрибутов
    В итоге наш css-код будет выглядить так:
    .news {
        border: solid 1px #323232;
        padding:  10px;
        background: #eeeeec;
    }
    .news div[class$="1"], .news div[class$="3"], .news div[class$="5"], .news div[class$="7"], .news div[class$="9"] {
        background: #fff;
        border-color: #ccc;
    }
    т.е. для блоков имеющих класс news и если их класс оканчиваестя цифрами 1,3,5,7,9 мы назначили другой стиль. В результате получили требуемы эффект.

    По аналогии делается и подсветка коментариев.

    Вот собственно и всё.
    Дальше, как обычно, включаем воображение, знания CSS и HTML и делаем свой сайт более интересным.

    Источник: _http://pafnuty.name/
    Категория: Советы | Просмотров: 350 | Добавил: ALL-DLE | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: