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

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

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


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

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

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

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

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


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

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


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

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

Конкретно мне нельзя помочь, я признаю я не так силён в этом как вы но этот модуль реально красив но доработки требуются я надеюсь вы его не забросите
meta
meta 16 сентября 2011 19:39
помогите пожалуйста сформировать запрос правильно...
Мне нужно что бы коменты выводились из определенной категории, а не из всех.
Заранее спс!
ПафНутиЙ
ПафНутиЙ 17 сентября 2011 08:44
Попробуйте так:
$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
Спасибо
guitar1st
guitar1st 17 сентября 2011 21:30
Подскажи как решить проблему. обНовился стоит аjax на комментарии тоесть без страниц /page,1,2,9,ID-namenews
Сайт http://guitar1st.ru/
ПафНутиЙ
ПафНутиЙ 17 сентября 2011 21:52
убрать код:
if($row['comm_num'] / $config['comm_nummers'] <= 1){
$on_page = '';
}else{
$on_page = 'page,1,'.reset(explode( '.' , $row['comm_num'] / $config['comm_nummers'] )).',';
}

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

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

Информация

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