ПафНутиЙ-Блог » Модули » Модуль iComm (Последние комментарии) jQuery Edition

Модуль iComm (Последние комментарии) jQuery Edition

1.08


Представляю вашему вниманию модифицированный вариант модуля iComm от . Модуль довольно сильно переработан, уменьшен почти в 10 раз его вес, исправлены некоторые недочёты и немного дополнен функционал.

Чтобы не заставлять вас много читать - смотрите как оно работает.

Что нового?



1. Весь модуль сокращён до двух файлов (1 - php и 1 - tpl), тем самым вес уменьшен с 50кб до 5.
2. Убраны ненужные js-скрипты, окошко с комментарием переведено на jQuery.
3. Доработаны небольшие косяки в модуле, убраны ссылки.
4. Добавлен вывод необрезанного заголовка (в качестве title лучше использовать его, чем обрезанный), вывод количества комментариев к новости.
5. Улучшена работа с кешем - теперь не нужно ничего подключать дополнительно, кеш чистится сам, стандартными средствами DLE.
6. Дальше не помню, т.к. не собирался публиковать модуль и не записывал изменения.


Установка



1. Скопировать файл icomm.php в папку /engine/modules/
2. Скопировать файл lastcomm.tpl в папку с текущим шаблоном.
3. Открыть main.tpl и в нужное место вставить строку:
{include file="engine/modules/icomm.php"}

4. Открыть любой .js файл (в дефолтном шаблоне это /js/libs.js) и вставить в начало следующее:
$(function () {
    $(".lcomment:odd").addClass("even");
    $(".lcomment").hover(function(){ $(this).addClass("hover");},function(){$(this).removeClass("hover");});
    $('.lcomment').click(function(){window.location=$(this).find("a").attr("href"); return false;});
    });


5. Открыть любой, удобный вам файл .css (обычно это styles.css) и вставить туда вот это:
Всё что помечено как: /* -- */ не критичные стили, их нужно менять под свой вкус и цвет.

.lastcomm li {
    position: relative;
    cursor: pointer;
    }
    .lcommbox {
        position: absolute;
        z-index: 3;
        right: 99999px;
        top: 0px;
        padding:10px; /* -- */
        margin-right: 15px; /* -- */
        border: 1px solid #c7c7c7; /* -- */
        background: #fff; /* -- */
        font-size: 12px; /* -- */
        }
        .lcomment.hover .lcommbox {left: 100%;} /* если нужно, чтобы комментарий показывался слева - заменить на right: 100%; */
        .lcomment {
            padding: 5px; /* -- */
            background: #fff; /* -- */
            }
            .lcomment a {text-decoration: none;} /* -- */
            .lcomment.even {
                background: #fafafa; /* -- */
                }
            .lcomment.hover {
                background: #fff; /* -- */
                padding: 4px; /* -- */
                border: solid 1px #bddb5c; /* -- */
                border-radius: 4px;  /* -- */
                -moz-border-radius: 4px; /* -- */
                -webkit-border-radius: 4px; /* -- */
                }
                .lcomment.hover a, .lcomment.hover a:hover {
                    color: #3d3d3d; /* -- */
                    }
            .lcomment span {
                color: #b3b7ba; /* -- */
                }
        .lcom_info {
            margin: -9px -9px 10px -9px; /* -- */
            padding: 10px; /* -- */
            background: #fafafa; /* -- */
            color: #73a331; /* -- */
            }


6. Всё! Наслаждаемся результатом.

Как всегда жду замечаний/предложений.

Комментарии

vanoveselov
vanoveselov 1 августа 2011 13:51
#1
Подскажите, поставил это чудо, а при наведении, не всплывает окно с комментами?
ПафНутиЙ
ПафНутиЙ 1 августа 2011 14:05
#2
с вероятностью в 90% у вас родительский блок имеет owerflow: hidden; отсюда и окошко не показывается, а вообще хотелось бы видеть ссылку на сайт.
vanoveselov
vanoveselov 1 августа 2011 14:12
#3
Кинул в личку
ПафНутиЙ
ПафНутиЙ 1 августа 2011 16:29
#4
Чтото блок вообще пустой, как будто бы модуль отдаёт пустое значение.
А где подключение js-кода?
vanoveselov
vanoveselov 1 августа 2011 16:53
#5
Написано в инструкции, что любой js надо взять. У меня такой есть (templates/Default/js/DD_belatedPNG.js), код вставлял сюда. Правильно сделал?
ПафНутиЙ
ПафНутиЙ 1 августа 2011 17:51
#6
Только грузится этот файл для ie6 и старше.
vanoveselov
vanoveselov 1 августа 2011 18:01
#7
Все спасибо, разобрался сам. Там js не подключен был.

Только грузится этот файл для ie6 и старше.

Только понял, что это для ie
MtvKat
MtvKat 3 августа 2011 11:54
#8
Благодарю за модуль smile
salam
salam 14 августа 2011 11:19
#9
ПафНутиЙ все установил, работает нормально, НО в опере появился горизонтальный лифт(в мозиле, ИЕ нету). Лифт уводит вправо похоже на вот это right: 99999px; значение.
Помоги плиз убрать этот косячок.
ПафНутиЙ
ПафНутиЙ 14 августа 2011 12:17
#10
поставь для самого самого родительского дива overflow: hidden; :) обычно это #wrap или #wrapper
salam
salam 14 августа 2011 12:26
#11
ПафНутиЙ,
Спасибо, все получилось.
Опа! поторопился, перестали появляться всплывающие каменты.
ПафНутиЙ
ПафНутиЙ 14 августа 2011 12:33
#12
ссылку на сайт дай.
salam
salam 14 августа 2011 12:37
#13
ПафНутиЙ,
kudron.ru
ПафНутиЙ
ПафНутиЙ 14 августа 2011 12:41
#14
У .blocklastcom - убрать overflow: hidden; а добавить owerflow: hidden; к #wrapper
salam
salam 14 августа 2011 12:43
#15
Цитата: ПафНутиЙ
У .blocklastcom - убрать overflow: hidden; а добавить owerflow: hidden; к #wrapper

Пасиб, работает.
LOMANI
LOMANI 6 сентября 2011 14:20
#16
Не работает определение страницы комментария...
т.е. если комментарий находится на 2й или 3й странице то ссылка на тему в данном модуле будет неправильной.
mtzone.ru
ПафНутиЙ
ПафНутиЙ 6 сентября 2011 14:35
#17
Разберёмся. Спасибо за сообщение.
LOMANI
LOMANI 6 сентября 2011 14:52
#18
при смене направления выпадения комментария (лево\право) = комментарий не выпадает влево (в стандарте право)

менял тут
.lcomment.hover .lcommbox {left: 100%;} /* если нужно, чтобы комментарий показывался слева - заменить на right: 100%; */


p/s/ сорри.... косяк у меня в шаблоне, только вот какой?
immoclan.ru
ПафНутиЙ
ПафНутиЙ 6 сентября 2011 15:32
#19
Посмотрел сайт - всё нормально выпадает. Наверное кеш браузера.
LOMANI
LOMANI 6 сентября 2011 16:02
#20
да же не знаю...
фф7 = почистил кэш, влево не выпадает, в право выпадает
ие9 = то же самое
хром = то же самое

поставил на 2х разных сайтах, всё одинаково, набор JS скриптов одинаковый ... 1н одном всё нормально работает и выпадает, на 2м не выпадает влево...
ПафНутиЙ
ПафНутиЙ 6 сентября 2011 16:30
#21
Вот как сейчас на сайте - работает.
А вообще посмотрите код, возможно у родительского блока в свойствах - overflow: hidden;
LOMANI
LOMANI 7 сентября 2011 10:00
#22
и правда был overflow: hidden;
теперь всё работает


з.ы. осталось исправить ссылку страницы комментария
lich-king-best
lich-king-best 13 сентября 2011 18:39
#23
У меня проблема с отступом и точкой
http://s006.radikal.ru/i215/1109/31/8b25a59ce88e.jpg

сайт gla-warez.ru блок выбор дизайна меняем на новогодний в нём проблема
ПафНутиЙ
ПафНутиЙ 13 сентября 2011 22:41
#24
ковыряйте CSS, у каждого сайта разные приёмы написания css, о глобальном сбросе стилей иногда не думают (как в вашем стиле)
lich-king-best
lich-king-best 13 сентября 2011 23:16
#25
Цитата: ПафНутиЙ
ковыряйте CSS, у каждого сайта разные приёмы написания css, о глобальном сбросе стилей иногда не думают (как в вашем стиле)

Конкретно мне нельзя помочь, я признаю я не так силён в этом как вы но этот модуль реально красив но доработки требуются я надеюсь вы его не забросите
meta
meta 16 сентября 2011 19:39
#26
помогите пожалуйста сформировать запрос правильно...
Мне нужно что бы коменты выводились из определенной категории, а не из всех.
Заранее спс!
ПафНутиЙ
ПафНутиЙ 17 сентября 2011 08:44
#27
Попробуйте так:
$db->query( "SELECT c.post_id, c.is_register, c.text, c.autor, c.email, p.id, p.date as newsdate, p.title, p.category, p.comm_num, p.alt_name, p.flag FROM " . PREFIX . "_comments as c, " . PREFIX . "_post as p WHERE p.id=c.post_id AND c.approve=1 AND p.category IN (1,2,3) ORDER BY c.date DESC LIMIT 0, " . $max_comm );
meta
meta 17 сентября 2011 12:38
#28
Спасибо
guitar1st
guitar1st 17 сентября 2011 21:30
#29
Подскажи как решить проблему. обНовился стоит аjax на комментарии тоесть без страниц /page,1,2,9,ID-namenews
Сайт http://guitar1st.ru/
ПафНутиЙ
ПафНутиЙ 17 сентября 2011 21:52
#30
убрать код:
if($row['comm_num'] / $config['comm_nummers'] <= 1){
$on_page = '';
}else{
$on_page = 'page,1,'.reset(explode( '.' , $row['comm_num'] / $config['comm_nummers'] )).',';
}

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

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Комментировать могут только зарегистрированные пользователи