Русский English Deutsch Українська Қазақша

Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не вошли.

#1 2009-12-30 15:44:40

Евгений
Модератор
Откуда: Россия
Здесь с 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Как сделать у комментариев разный стиль?

Очень хотелось бы сделать чередующийся стиль у комментариев, то есть например у 1 комментария зеленый фон, у второго белый, и тд., кто нибудь может помочь?

Есть хак для dle, и хак для ucoz`a. Это все что я нашел, пробовал сделать на основе хака под ucoz, ничего не вышло, может у меня просто руки кривые? big_smile

Жду ваших идей. Спасибо за внимание. :)


I NGeneration CMS

Вне форума

#2 2009-12-30 16:41:24

infinity237
Модератор
Откуда: Russia, Moscow
Здесь с 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Как сделать у комментариев разный стиль?

.comment_even {
background : #fbfbfb;
}

.comment_odd {
background : #fff;
}

Отредактировано infinity237 (2009-12-30 16:41:40)

Вне форума

#3 2011-01-05 15:23:54

infinity237
Модератор
Откуда: Russia, Moscow
Здесь с 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Как сделать у комментариев разный стиль?

Мало кто знает, что для различных стилей чётной и нечётной новости можно также использовать:

#news_even {
background : #fafafa;
}

#news_odd {
background : #fff;
}

Кроме того, можно не выводить определённый текст каждую чётную новость вот например вот так:

<?php

class AlternatingNewsFilter extends NewsFilter
{

    var $nCount = 0;

    function showNewsPre($id, $row, $callingParams)
    {
        $this->nCount = $callingParams['nCount'];
    }

}

function alternating($sth, $row, &$tvars)
{
     if( ($row['id'] % 2) == 0 )
     {
          $tvars['regx']["'\[alternating\](.*?)\[/alternating\]'si"] = '';
     } else {
           $tvars['regx']["'\[alternating\](.*?)\[/alternating\]'si"] = '\\1';
     }
}
add_act('news_short', 'alternating', 3);
add_act('news_full', 'alternating', 3);
add_act('news_search', 'alternating', 3);

?>

Или же например использовать разные стили для каждой из 6 новостей. (См. вложение.)

P.S. Админы, переместите в FAQ.

Отредактировано infinity237 (2011-01-05 15:24:13)

Вне форума

#4 2011-01-06 03:32:42

legenda
Участник
Откуда: ua
Здесь с 2009-12-22
Сообщений: 2,151
Рейтинг :   39 

Re: Как сделать у комментариев разный стиль?

infinity237, зачетно, блин где ти раньше бил big_smile +1

Вне форума

#5 2011-01-15 14:59:47

coreldraw
Участник
Откуда: Ukraine
Здесь с 2008-10-21
Сообщений: 209
Рейтинг :   

Re: Как сделать у комментариев разный стиль?

информация полезная, но... можно подробнее о разных стилях для чётных и нечётных новостей на примере содержимого news_short.tpl соответствующего фрагмента css... пожалуйста!

Вне форума

#6 2011-01-21 15:49:50

infinity237
Модератор
Откуда: Russia, Moscow
Здесь с 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Как сделать у комментариев разный стиль?

Вообщем там вроде так.
1. Для новостей:
Пишешь в news.short.tpl:

<div class="news_{alternating}" id="post">
</div>

Соответственно {alternating} принимает значения odd или even, в зависимости от того чётная/нечётная это новость.
В css задаёшь стили:

.news_even {
background : #fafafa;
}

.news_odd {
background : #fff;
}

2. Для комментриев также, только {alternating} в comment.show.tpl принимает значения comment_odd comment_even.

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

Вне форума

#7 2011-02-07 17:23:52

KhadeR
Участник
Здесь с 2009-09-16
Сообщений: 207
Рейтинг :   17 

Re: Как сделать у комментариев разный стиль?

infinity237, простите, конечно, но, как мне кажется такой вариант не будет работать

infinity237 пишет:

<?php

class AlternatingNewsFilter extends NewsFilter
{

    var $nCount = 0;

    function showNewsPre($id, $row, $callingParams)
    {
        $this->nCount = $callingParams['nCount'];
    }

}

function alternating($sth, $row, &$tvars)
{
     if( ($row['id'] % 2) == 0 )
     {
          $tvars['regx']["'\[alternating\](.*?)\[/alternating\]'si"] = '';
     } else {
           $tvars['regx']["'\[alternating\](.*?)\[/alternating\]'si"] = '\\1';
     }
}
add_act('news_short', 'alternating', 3);
add_act('news_full', 'alternating', 3);
add_act('news_search', 'alternating', 3);

как впрочем и то, что находится в прикрепленном плагине. В приведенном варианте отображаться так будет не четная (или 6) новость, а только новость, чей id делется на 2 (или 6)
Вот это должно работать для каждой четной новости, например:

<?php

class AlternatingNewsFilter extends NewsFilter {

	function showNews($newsID, $SQLnews, &$tvars, &$mode) { 
		if (isset($mode['nCount']) && $mode['nCount']) $tvars['regx']['#\[alternating\](.+?)\[\\/alternating\]#is'] = ($mode['nCount']%2)?'':'$1';

		return 1; 
	}

}

register_filter('news','alternating', new AlternatingNewsFilter);

Отредактировано KhadeR (2011-02-07 17:25:52)


Linkum
В ТОП без фильтров и банов - Оптимизм.

Вне форума

#8 2011-02-07 19:53:06

mittus
Участник
Здесь с 2010-01-24
Сообщений: 155
Рейтинг :   

Re: Как сделать у комментариев разный стиль?

Можно подключить библиотеку JQuery и для класса комментария выполнить следующую функцию:
<script type="text/javascript">
$(function(){
$('.comment_class:odd').css('background','#000');
})
</script>
Для идентификатора будет соотв. #comment_id

Вне форума

#9 2011-02-07 20:08:02

KhadeR
Участник
Здесь с 2009-09-16
Сообщений: 207
Рейтинг :   17 

Re: Как сделать у комментариев разный стиль?

mittus пишет:

Можно подключить библиотеку JQuery и для класса комментария выполнить следующую функцию:
<script type="text/javascript">
$(function(){
$('.comment_class:odd').css('background','#000');
})
</script>
Для идентификатора будет соотв. #comment_id

а не лучше ли так, если уже решил использовать #jQuery?

<script type="text/javascript">
     $(function(){
          $('#comment_id:nth-child(odd)').addClass('odd');
     })
</script>

Отредактировано KhadeR (2011-02-07 20:13:08)


Linkum
В ТОП без фильтров и банов - Оптимизм.

Вне форума

#10 2011-02-08 09:19:50

Wolverine
Модератор
Откуда: Домодедово
Здесь с 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Как сделать у комментариев разный стиль?

Зачем вообще использовать JS где не надо? Движок уже добавляет класс comment_odd и comment_even. Остается только в CSS задать стили

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.017 сек, 7 запросов выполнено - Использовано памяти: 564.31 Кбайт (Пик: 585.31 Кбайт) ]