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

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

Вы не зашли.

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

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

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

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

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

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


I NGeneration CMS

Не в сети

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

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

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

.comment_even {
background : #fbfbfb;
}

.comment_odd {
background : #fff;
}

Изменено infinity237 (2009-12-30 17:41:40)

Не в сети

#3 2011-01-05 16: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 16:24:13)

Не в сети

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

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

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

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

Не в сети

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

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

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

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

Не в сети

#6 2011-01-21 16: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 18: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 18:25:52)

Не в сети

#8 2011-02-07 20: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 21: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 21:13:08)

Не в сети

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

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

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

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

Не в сети

Подвал раздела

Работает на FluxBB